如何用 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 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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)
NVIDIA GeForceNOW でエラー コード 0x0000012E が発生した場合は、解決策を共有します。私たちも同じ問題に遭遇しました。ここでは、GeForce でゲームをスムーズに楽しめるようにその問題を修正する方法を説明します。 GeForce Now エラー コード 0x0000012E を今すぐ修正する Windows コンピューターで GeForceNow エラー コード 0x0000012E を修正するには、次の解決策に従ってください: インターネット接続要件を確認する ハードウェア要件を確認する 管理者として実行する 追加の提案。多くのユーザーが問題を解決するための措置を講じていないため、開始する前にしばらく辛抱強く待つことをお勧めします。場合によっては誤作動が原因となることもあります

0x0000004e 障害とは何ですか? 障害は、コンピューター システムにおける一般的な問題です。コンピュータに障害が発生すると、通常、システムは正常に実行できなくなり、シャットダウン、クラッシュ、またはエラー メッセージが表示されます。 Windows システムには、システムに重大なエラーが発生したことを示すブルー スクリーン エラー コードである、特定の障害コード 0x0000004e があります。 0x0000004e ブルー スクリーン エラーは、システム カーネルまたはドライバーの問題が原因で発生します。このエラーは通常、コンピュータ システムに次のようなエラーを引き起こします。

ブルー スクリーンの問題は、オペレーティング システムがエラーから回復できず、コンピュータ データ ファイルを保護するために画面イメージが強制的に表示される場合に発生します。また、調査を容易にするために、ユーザーにエラー コードを提供します。 win7のブルースクリーンコード0x万万3bの原因は何ですか?どうすれば修正できますか?この問題に関して、次の小シリーズでは、win7 Ultimate バージョンのブルー スクリーン コード 0x million million 3b の修復方法を紹介します。詳細は以下をご覧ください。 Win7 Ultimate Edition のブルー スクリーン コード 0x000003b はどうすればよいですか? 1. win7 システムが 0x000003B のエラー プロンプトを停止した場合、通常は問題を修正するパッチを手動で入手する必要があります。ブルー スクリーン コードだけから判断すると、コード 0x000003B は予期しないネットワーク エラーが原因であることがわかります。 2. したがって、時間内にシステムブラウザのキャッシュをクリアする必要があります

コンピューターゲームをよくプレイするネチズンはコンピューターのブルースクリーンに遭遇することがありますが、状況が異なり、原因が不明瞭であるため、ブルースクリーンコード0xWanwan8eとは何ですか?どうやって解決すればいいでしょうか?これらのユーザーをより効果的に使用するために、Xiaobian はブルー スクリーン コード 0x1008e の理由と解決策を説明します。多くのネチズンは、コンピューターに障害が発生したときに、間違ったコードに混乱していると思います。コードによって引き起こされる混乱と問題を迅速に解決し、障害を排除するために、ブルー スクリーン コード 0x1008e は何を意味しますか?ブルースクリーンコード0x万万8eの問題を解決する方法を説明しましょう。ブルー スクリーン コード 0x00008e を解決するための画像とテキスト。障害箇所でブルー スクリーン コードが見つかりました (図 1) コード: 0x000008e 理由: システムは現在 JOI を実行できません。

多くの友人がコンピューターを使用しているときに0x0000007bエラーコードに遭遇しましたが、このような状況を解決するにはどうすればよいですか?この問題は、ハードディスクのモードを変更するか、設定をリセットすることで解決できます。以下の解決策を見てみましょう。 0x0000007b が表示された場合の対処方法: 方法 1: 1. 間違ったグラフィック カード ドライバーが更新されている可能性があります。エラー コードが表示されたら、コンピューターを再起動します。 2. 次に、「F8」を押してセーフモード選択インターフェイスに入り、「前回正常起動時の構成」を選択してシステムに入ります。 3. これでアプリケーションの競合問題は解決できますが、解決できない場合は、ハードディスクの起動モードを変更してみてください。方法 2: 1. まずコンピュータを再起動し、ホットキーを使用して「b」と入力します。

パソコンを利用する際、コピー機を利用する機会が多いユーザーも多いと思います。しかし、最近、会社の win7 コンピューターを使用して共有プリンターに接続するときに、多くの消費者が 0x0000011b プロンプトを経験しています。この種の問題を解決するにはどうすればよいでしょうか?編集者が皆さんに以下をご覧ください。 System Home www.xitongzhijia.net によるオリジナルのデザインであり、転載する場合は出典を明示する必要があります。方法 1: パッチ番号がすでにわかっている場合、サードパーティ ツールを使用してパッチをアンインストールします。このツールは Lenovo によって公式に作成されたパッチ アンインストール ツールです。どのコンピュータにも適しています。ユーザーは KB を更新した後にデータを入力するだけです。パッチを削除してください。アンインストールしてください。ダウンロードリンク: http://www.xito

0x0000004e ブルー スクリーンの解決策 コンピューターを使用しているときに、ブルー スクリーンが発生することがあります。ブルー スクリーンは、Windows オペレーティング システムで回復不能なエラーが発生し、コンピュータが正常に動作できなくなり、ブルー スクリーンの形式でエラー メッセージが表示されることを意味します。一般的なブルー スクリーン エラー コードの 1 つは 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] インターネットを確認してください
