如何用 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脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++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]檢查您的互聯網
