如何用 Python 中的 NLTK 对中文进行分析和处理?
用nltk对自己的日记进行分析。得到以下结果(节选)
'\xb8\xb0', '\xe5\xbc\xba\xe8\xba', '\xe5\xbd\xbc\xe5', '\xb8\xb4', '\xb8\x8a', '\xb8\x8b', '\xb8\x88', '\xb8\x89', '\xb8\x8e', '\xb8\x8f', '\xb8\x8d', '\xb8\x82', '\xb8\x83', '\xb8\x80', '\xb8\x81', '\xb8\x87', 'tend', '\xb8\x9a',
请问对于中文的自然语言分析,有哪些方法和工具可以推荐?
回复内容:
最近正在用nltk 对中文网络商品评论进行褒贬情感分类,计算评论的信息熵(entropy)、互信息(point mutual information)和困惑值(perplexity)等(不过这些概念我其实也还理解不深...只是nltk 提供了相应方法)。
我感觉用nltk 处理中文是完全可用的。其重点在于中文分词和文本表达的形式。
中文和英文主要的不同之处是中文需要分词。因为nltk 的处理粒度一般是词,所以必须要先对文本进行分词然后再用nltk 来处理(不需要用nltk 来做分词,直接用分词包就可以了。严重推荐结巴分词,非常好用)。
中文分词之后,文本就是一个由每个词组成的长数组:[word1, word2, word3…… wordn]。之后就可以使用nltk 里面的各种方法来处理这个文本了。比如用FreqDist 统计文本词频,用bigrams 把文本变成双词组的形式:[(word1, word2), (word2, word3), (word3, word4)……(wordn-1, wordn)]。
再之后就可以用这些来计算文本词语的信息熵、互信息等。
再之后可以用这些来选择机器学习的特征,构建分类器,对文本进行分类(商品评论是由多个独立评论组成的多维数组,网上有很多情感分类的实现例子用的就是nltk 中的商品评论语料库,不过是英文的。但整个思想是可以一致的)。
另外还有一个困扰很多人的Python 中文编码问题。多次失败后我总结出一些经验。
Python 解决中文编码问题基本可以用以下逻辑:
utf8(输入) ——> unicode(处理) ——> (输出)utf8
Python 里面处理的字符都是都是unicode 编码,因此解决编码问题的方法是把输入的文本(无论是什么编码)解码为(decode)unicode编码,然后输出时再编码(encode)成所需编码。
由于处理的一般为txt 文档,所以最简单的方法,是把txt 文档另存为utf-8 编码,然后使用Python 处理的时候解码为unicode(sometexts.decode('utf8')),输出结果回txt 的时候再编码成utf8(直接用str() 函数就可以了)。
楼主遇到的只是编码的问题…
有很多好用的中文处理包:
Jieba:可以用来做分词,词性标注,TextRank
HanLP:分词,命名实体识别,依存句法分析,还有FudanNLP,NLPIR
个人觉得都比NLTK好用~
中文分词用结巴就好了,我做了个小例子 nltk-比较中文文档相似度你说这个跟NLTK无关,换Python3,就没有这些鬼了!中文还得UTF8!
大爱NLTK!其它包,除了固定任务的,java就算了,
使用:text.decode('gbk')
分词:你找相应的中文分词包 https://github.com/fxsjy/jieba因为nltk不能对中文进行分词的原因吧,最近也在学习这方面的东西,推荐一个工具中文處理工具,可以研究一下
我遇到同样的问题,在看《Python自然语言处理》一书,成功加载自己的文档后,却看到里面的中文如你所示,应该是编码设置的问题,但是不知道该设置哪里。这方面的资料太少了

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题
![GeForce Now错误代码0x0000012E[修复]](https://img.php.cn/upload/article/000/000/164/170834836989999.jpg?x-oss-process=image/resize,m_fill,h_207,w_330)
如果您在NVIDIAGeForceNOW上遇到错误代码0x0000012E,我们将分享解决方案。我们也曾遇到相同问题,以下是我们解决错误的方法,让您可以顺利在GeForce上享受游戏乐趣。立即修复GeForce错误代码0x0000012E要修复Windows计算机上的GeForceNow错误代码0x0000012E,请遵循以下解决方案:检查互联网连接要求验证硬件要求以管理员身份运行其他建议。在开始之前,我们建议您耐心等待一段时间,因为很多用户并没有采取行动来解决这个问题。有时候,故障可能会导致这

0x0000004e是什么故障在计算机系统中,故障是一个常见的问题。当计算机遇到故障时,系统通常会因为无法正常运行而出现停机、崩溃或者出现错误提示。而在Windows系统中,有一个特定的故障代码0x0000004e,这是一个蓝屏错误代码,表示系统遇到了一个严重的错误。0x0000004e蓝屏错误是由于系统内核或驱动程序问题导致的。这种错误通常会导致计算机系统

蓝屏问题是,当操作系统无法从错误中恢复时,为了保护计算机数据文件而强制显示屏幕图像。并为用户提供错误的代码,以便于调查。win7蓝屏代码0x万万3b的原因是什么?如何修复它?在这个问题上,以下小系列介绍了win7旗舰版蓝屏代码0x万万万3b的修复方法。详见下面详细介绍。Win7旗舰版蓝屏代码0x000003b怎么办?1.win7系统0x000003B停止错误提示时,通常需要手动获取补丁来修复问题。仅从蓝屏代码来看,代码0x000003B是由于网络意外错误造成的。2.因此,需要及时清理系统浏览器缓

经常玩电脑的网民有时会遇到电脑蓝屏的情况,但他们不知道是什么原因,因为情况不同,原因不明确,那么蓝屏代码0x万万8e是什么情况呢?如何解决它?为了更好地使用这些用户,小边将告诉您蓝屏代码0x万万8e的原因和解决方案。相信很多网友在电脑出现故障时,对错误的代码一脸茫然。为了快速解决代码带来的困惑和问题,消除故障,蓝屏代码0x万万8e是什么意思?让我们告诉你解决蓝屏代码0x万万8e的问题。解决蓝屏代码0x00008e图文。找到故障点蓝屏代码(图1)代码:0x000008e原因:系统目前无法执行JOI

不少的小伙伴在使用电脑的时候都遇到了出现0x0000007b错误代码的情况,那么遇到这类情况该怎么解决呢?我们可以通过更改硬盘模式或重置设置的方法来解决。下面就给你们带来了解决的方法一起看看吧。出现0x0000007b怎么办:方法一:1、很可能是更新了错误的显卡驱动,出现错误代码后先重启电脑。2、随后按下“F8”进入安全模式选择界面,选择“最近一次的正确配置”就能进入系统了。3、这样可以解决应用程序冲突问题,如果无法解决,那么可以尝试更改硬盘启动模式。方法二:1、首先重启电脑,然后使用热键进入b

坚信不少于客户在应用电脑的情况下都常常会应用到复印机。可是近期有许多消费者在应用公司的win7电脑联接共享打印机的过程中却发生了0x0000011b提醒,碰到这类问题要怎么解决呢?下边小编就带上大伙儿一起看看吧!系统之家www.xitongzhijia.net原创设计,转截需标明来源。方式一:已经知道补丁号,根据第三方专用工具卸载补丁这款专用工具是联想官方荣誉出品的一款补丁卸载专用工具,适用任何的电脑,客户只要将升级补丁的kb后的数据键入点一下卸载就可以。下载链接:http://www.xito

0x0000004e蓝屏解决方法当我们使用电脑时,偶尔可能会遇到蓝屏的情况。蓝屏是指Windows操作系统遇到了一个无法恢复的错误,导致电脑无法正常运行,并以蓝屏的方式显示错误信息。其中一个常见的蓝屏错误代码是0x0000004e。本文将介绍一些解决该问题的方法。首先,我们需要了解一下0x0000004e蓝屏的原因。这个错误通常是由于系统驱动程序出现问题而引
![Xbox.com/ErrorHelp 0x87e50007[修复]](https://img.php.cn/upload/article/000/887/227/170831504115537.jpg?x-oss-process=image/resize,m_fill,h_207,w_330)
本文将指导您解决Xbox错误代码0x87e50007,可能由服务器问题、网络不稳定或更新缺失引起。在您继续进行更多故障排除之前,请确保检查XboxLive服务状态。如果存在Xbox服务问题,可能是由服务器故障引起的。在这种情况下,请耐心等待问题解决,并定期查看Xbox状态页面以获取最新信息。如何修复Xbox错误代码0x87e50007使用以下修复程序解析Xbox.com/ErrorHelp0x87e50007:检查您的互联网连接更新游戏卸载游戏或应用程序重置您的主机我们开始吧。1]检查您的互联网
