목차
回复内容:
백엔드 개발 파이썬 튜토리얼 如何用 Python 中的 NLTK 对中文进行分析和处理?

如何用 Python 中的 NLTK 对中文进行分析和处理?

May 18, 2018 pm 03:35 PM
xb xe

用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')
分词:你找相应的中文分词包 github.com/fxsjy/jieba因为nltk不能对中文进行分词的原因吧,最近也在学习这方面的东西,推荐一个工具中文處理工具,可以研究一下 我遇到同样的问题,在看《Python自然语言处理》一书,成功加载自己的文档后,却看到里面的中文如你所示,应该是编码设置的问题,但是不知道该设置哪里。这方面的资料太少了

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

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

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

GeForce Now 오류 코드 0x0000012E [수정됨] GeForce Now 오류 코드 0x0000012E [수정됨] Feb 19, 2024 pm 09:12 PM

GeForce Now 오류 코드 0x0000012E [수정됨]

0x0000004e 오류는 무엇을 의미합니까? 0x0000004e 오류는 무엇을 의미합니까? Feb 18, 2024 pm 01:54 PM

0x0000004e 오류는 무엇을 의미합니까?

Win7 Ultimate Edition에서 블루 스크린 코드 0x000003b를 처리하는 방법 Win7 Ultimate Edition에서 블루 스크린 코드 0x000003b를 처리하는 방법 Jul 23, 2023 pm 09:21 PM

Win7 Ultimate Edition에서 블루 스크린 코드 0x000003b를 처리하는 방법

0x00008e 블루 스크린 코드를 해결하는 방법을 가르쳐주세요 0x00008e 블루 스크린 코드를 해결하는 방법을 가르쳐주세요 Jul 10, 2023 pm 02:37 PM

0x00008e 블루 스크린 코드를 해결하는 방법을 가르쳐주세요

0x0000007b 오류를 해결하는 방법 0x0000007b 오류를 해결하는 방법 Dec 25, 2023 pm 03:35 PM

0x0000007b 오류를 해결하는 방법

공유 프린터가 Win7 컴퓨터 0x0000011b에 연결되지 않으면 어떻게 해야 합니까? 공유 프린터가 Win7 컴퓨터 0x0000011b에 연결되지 않으면 어떻게 해야 합니까? Jul 12, 2023 pm 07:01 PM

공유 프린터가 Win7 컴퓨터 0x0000011b에 연결되지 않으면 어떻게 해야 합니까?

블루 스크린 오류 0x0000004e 해결 방법 블루 스크린 오류 0x0000004e 해결 방법 Feb 18, 2024 pm 07:59 PM

블루 스크린 오류 0x0000004e 해결 방법

Xbox.com/ErrorHelp 0x87e50007 [수정됨] Xbox.com/ErrorHelp 0x87e50007 [수정됨] Feb 19, 2024 am 11:57 AM

Xbox.com/ErrorHelp 0x87e50007 [수정됨]

See all articles