㈠ python 或c++ 中文命名实体识别开源工具有哪些
一、来NLTK进行分词
用到的函源数:
nltk.sent_tokenize(text) #对文本按照句子进行分割
nltk.word_tokenize(sent) #对句子进行分词
二、NLTK进行词性标注
用到的函数:
nltk.pos_tag(tokens)#tokens是句子分词后的结果,同样是句子级的标注
三、NLTK进行命名实体识别(NER)
用到的函数:
nltk.ne_chunk(tags)#tags是句子词性标注后的结果,同样是句子级
上例中,有两个命名实体,一个是Xi,这个应该是PER,被错误识别为GPE了; 另一个事China,被正确识别为GPE。
四、句法分析
nltk没有好的parser,推荐使用stanfordparser
但是nltk有很好的树类,该类用list实现
可以利用stanfordparser的输出构建一棵python的句法树
㈡ 如何用 Python 中的 NLTK 对中文进行分析和处理
我感觉用nltk 处理中文是完全可用的。其重点在于中文分词和文本表达的形内式。
中文和英文主要容的不同之处是中文需要分词。因为nltk 的处理粒度一般是词,所以必须要先对文本进行分词然后再用nltk 来处理(不需要用nltk 来做分词,直接用分词包就可以了。严重推荐结巴分词,非常好用)。
中文分词之后,文本就是一个由每个词组成的长数组:[word1, word2, word3…… wordn]。之后就可以使用nltk 里面的各种方法来处理这个文本了。比如用FreqDist 统计文本词频,用bigrams 把文本变成双词组的形式:[(word1, word2), (word2, word3), (word3, word4)……(wordn-1, wordn)]。
㈢ 如何用 Python 中的 NLTK 对中文进行分析和处理
用到的函数:
nltk.ne_chunk(tags)#tags是句子词性标注后的结果,同样是句子级有两个命名实体,一个是专Xi,这个应属该是PER,被错误识别为GPE了; 另一个事China,被正确识别为GPE。
㈣ 如何用 Python 中的 NLTK 对中文进行分析和处理
最近正在用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() 函数就可以了)。
㈤ 如何用 Python 中的 NLTK 对中文进行分析和处理
一、NLTK进行分词
用到的函数:
nltk.sent_tokenize(text) #对文本按照句子进行分割
nltk.word_tokenize(sent) #对句子进行分词
二、NLTK进行词性标注
用到的内函数容:
nltk.pos_tag(tokens)#tokens是句子分词后的结果,同样是句子级的标注
三、NLTK进行命名实体识别(NER)
用到的函数:
nltk.ne_chunk(tags)#tags是句子词性标注后的结果,同样是句子级
上例中,有两个命名实体,一个是Xi,这个应该是PER,被错误识别为GPE了; 另一个事China,被正确识别为GPE。
四、句法分析
nltk没有好的parser,推荐使用stanfordparser
但是nltk有很好的树类,该类用list实现
可以利用stanfordparser的输出构建一棵python的句法树
㈥ nltk如何处理中文同义词、近义词
1、从感情色彩上进行辨析,也就是从词的褒贬义去辨析。如“顽强”与“顽固”内,前者容表示赞许,后者则表示憎恨。
2、从语意轻重上进行辨析。如“破坏”与“摧毁”,前者程度浅,后者程度深。
3、从范围大小上进行辨析。如“战争”与“战斗”,前者范围大,后者范围小。
4、从具体与概括的不同进行辨析。如“衣服”与“衬衫”,“衣服”是概括性的,指所有衣服,而“衬衫”是具体的,可以指长袖衬衫或短袖衬衫,男式衬衫或女式衬衫等。
㈦ python nltk 怎么样使用中文
NLTK里面提供的函数应该不可能用于中文吧。
分词就没法分,剩下的就都做不了了
即使设置一下编码什么的,也没什么意义啊
如果我说错了就错了吧,留个名,看看其他人怎么回答。哈哈
㈧ 如何用 Python 中的 NLTK 对中文进行分析和处理
有很多好用的中文处理包:
Jieba:可以用来做分词,词性标注,TextRank
HanLP:分词,命名实体识别,依存句法分析,还有FudanNLP,NLPIR
个人觉得都比NLTK好用~
㈨ 如何用 Python 中的 NLTK 对中文进行分析和处理
用到的函数:
nltk.sent_tokenize(text) #对文本按照句子进行分割
nltk.word_tokenize(sent) #对句子进行分词
㈩ 如何使用nltk进行中文分词
中文里没有分词的说法,只有英文、法语、德语等有分词的说法。
分词是动词的三种非限定形式之一,分为两种:现在分词和过去分词。现在分词一般有四种形式,基本形式为“动词原形+-ing”,完成式为having加过去分词,一般被动式为being加过去分词,完成被动式为having
been加过去分词,而过去分词只有一种形式,规则动词的过去分词由动词原形加-ed构成,不规则动词需要单独记忆。
现在分词一般式的构成如下:
动词的现在分词,一般在词尾加-ing,但以-e结尾的字则去-e加-ing:laugh—laughing、live--living。但是,-e前为元音,-e要保留。Hoe—hoeing、agree—agreeing,toe—toeing、dye—dyeing、shoe—shoeing、singe—singeing。
以重读闭音节结尾的动词,末尾只有一个辅音字母(x除外),双写末尾的辅音字母加-ing:plan—planning、occur—occurring。非重读闭音节结尾的动词,则不要双写,如:travel—traveling。
以辅音字母c结尾的动词,c后加k再加-ing:traffic—trafficking、picnic—picnicking。
不规则动词的现在分词要逐个记忆:lie—lying、die—dying、tie—tying、vie—vying。
规则动词的过去分词,一般在词尾加-ed,但以-e结尾的字则只加-d:laugh—laughed、live—lived、age—aged、curse—cursed、learn—learned、crook—crooked、bless—blessed。
以辅音字母加y结尾的动词,变y为I加-ed。如:hurry—hurried、try—tried。
以重读闭音节结尾的动词,末尾只有一个辅音字母(x除外),双写末尾的辅音字母加-ed:plan—planned、occur—occurred、dog—dogged 。但:humbug—humbugged、zigzag—zigzagged。非重读闭音节结尾的动词,则不要双写,如:travel—traveled。
以辅音字母c结尾的动词,c后加k再加-ed:traffic—trafficked、picnic—picnicked。
不规则动词的过去分词须单独记忆:get—got—gotten、sink—sank—sunk、strike—struck—struck、bear—bore—borne、rot—rotted—rotten、hang—hung—hung。