如何用 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 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 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)
NVIDIA GeForceNOW에서 오류 코드 0x0000012E가 발생하는 경우 솔루션을 공유해 드리겠습니다. 동일한 문제가 발생했으며 GeForce에서 원활하게 게임을 즐길 수 있도록 문제를 해결한 방법은 다음과 같습니다. 지금 GeForce Now 오류 코드 0x0000012E 수정 Windows 컴퓨터에서 GeForceNow 오류 코드 0x0000012E를 수정하려면 다음 해결 방법을 따르십시오. 인터넷 연결 요구 사항 확인 하드웨어 요구 사항 확인 관리자로 실행 추가 제안. 많은 사용자들이 문제 해결을 위한 조치를 취하지 않았으므로 시작하기 전에 잠시 기다려 보시기 바랍니다. 가끔 오작동으로 인해 이런 일이 발생할 수 있습니다.

0x0000004e 오류란 무엇입니까? 오류는 컴퓨터 시스템에서 흔히 발생하는 문제입니다. 컴퓨터에 오류가 발생하면 일반적으로 시스템이 제대로 실행될 수 없기 때문에 시스템이 종료되거나 충돌하거나 오류 메시지가 표시됩니다. Windows 시스템에는 시스템에 심각한 오류가 발생했음을 나타내는 블루 스크린 오류 코드인 특정 오류 코드 0x0000004e가 있습니다. 0x0000004e 블루 스크린 오류는 시스템 커널 또는 드라이버 문제로 인해 발생합니다. 이 오류로 인해 일반적으로 컴퓨터 시스템이

블루 스크린 문제는 운영 체제가 오류를 복구할 수 없어 컴퓨터 데이터 파일을 보호하기 위해 화면 이미지가 강제로 나타나는 경우입니다. 그리고 더 쉽게 조사할 수 있도록 사용자에게 오류 코드를 제공하세요. win7 블루스크린 코드 0x万万3b가 뜨는 이유는 무엇인가요? 어떻게 고치나요? 이번 호에서는 다음 작은 시리즈에서 win7 최종 버전의 블루 스크린 코드 0xmillionmillion3b의 복구 방법을 소개합니다. 아래 세부정보를 참조하세요. 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 프롬프트를 경험했습니다. 이러한 문제를 해결하는 방법은 무엇입니까? 편집자는 모두가 아래를 살펴보도록 안내할 것입니다! 시스템 홈 www.xitongzhijia.net의 원본 디자인, 재인쇄 시 출처를 표시해야 합니다. 방법 1: 이미 패치 번호를 알고 있으면 타사 도구를 사용하여 패치를 제거합니다. 이 도구는 Lenovo에서 공식적으로 제작한 패치 제거 도구로, 사용자는 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] 인터넷을 확인하세요
