最近在盘点Python下的自然语言处理包,今天发现的这个小明NLP,本身这个工具算是一个比较普通的工具,但中间的一个小点吸引到了我,所以这里记录下。
小明NLP的主要功能:
中文分词 & 词性标注
支持繁体
支持自定义词典
中文拼写检查
文本摘要 & 关键词提取
情感分析
文本转拼音
获取汉字偏旁部首
其中最特别的是获取汉字的偏旁部首,类似英文的词干提取?由于汉字的特殊构造,导致具有相同部首的汉字可能存在某些关联,所以在机器学习中可能会有一定的价值。
直接上代码:
import xmnlp print(xmnlp.radical('自然语言处理')) print(xmnlp.radical('自然语言处理'))
输出内容为:
['自', '灬', '讠', '言', '夂', '王'] ['自', '灬', '讠', '言', '夂', '王']
从结果可以看到,其默认将繁体中文转化为简体中文后进行的偏旁部首提取。更好的方案可能是将简体中文转化为繁体后再进行提取(原因是汉字的简化导致一部分包含语义的偏旁被简化掉了)
看了下他的代码,其主要实现方式是通过字典来实现,来看一下其字典的数据:
import pickle import bz2 fname = r"D:\CodeHub\NLP\venv\Lib\site-packages\xmnlp\radical\radical.pickle" f = bz2.BZ2File(fname, 'rb') d = pickle.loads(f.read()) for k, v in d['dictionary'].items(): print(k, v)
输出数据示例:
耀 羽 蕲 艹 涉 氵 谈 讠 伊 亻 预 页
另外也找到了两个中文偏旁部首的项目:
https://github.com/WenDesi/Chinese_radical
https://github.com/wangchuan2008888/cn-radical
看了下字典基本上都一致(来自精简版的新华字典),其中一个针对本地没有的汉字额外请求了 百度汉语
,进行了抓取。
Be First to Comment