自然语言处理
关于NLP方面的若干知识和案例
天青如水
这个作者很懒,什么都没留下…
展开
-
Kenlm初步使用----评估句子中"a/an"使用情况
1 基本要求通过kenlm训练自己的语言模型,判别测试集中的句子是否存在a/an的使用错误。例如:in an sense , he is the antithesis of dagny是错误,而in an sense , he is the antithesis of dagny是正确的。2 准备工作实验环境:Python3.7.3、Ubuntu16.04、ntlk、kenlm训练预料:...原创 2019-10-12 13:32:06 · 2599 阅读 · 1 评论 -
win10子系统python开发环境准备----kenlm和nltk的使用
前言因为NLP作业需要用到kenlm,而kenlm在linux下更为方便。本人win10之前开启了子系统,所以就打算在子系统下进行相关作业的完成。首先开启win10子系统,网上教程挺多,照着做就成。我当前安装版本是Ubuntu16.04。终端输入cat /etc/lsb-release或uname可以查看版本。Python的下载Linux中自带python2,不过Pyhton软件基金会宣布...原创 2019-10-12 01:13:57 · 1034 阅读 · 3 评论 -
NLP之昆虫词典制作
本次NLP作业需要每个人在小组选定领域下进行子领域词典制作,我们小组选定的领域为动物。我个人选定的子领域为昆虫,原始语料库来自《昆虫记》这本书。通过爬虫或者复制粘贴可以在本地得到关于《昆虫记》的文本文件。数据的处理读取文本,将句号替换成换行,跳过空行通过自建筛选字典和清华动物字典,对文本进行处理,保留每行含有动物词汇的行按照7:3的比例,划分训练集和测试集读取训练集,生成昆虫领域词典。...原创 2019-11-30 21:36:43 · 520 阅读 · 0 评论 -
python中文分词之三种匹配
它按照一定的策略匹配需要分词的源字符串,如果能够找到对应的字符串将成功匹配。这是一种很原始且效率相对低效的分词策略。举个简单案例,在“我要认真看论文”句子中查找关键词“论文”,无论采用何种匹配方式,它都需要从左往右或者从右往左一个字或一个词的查找(长度取决于对分词的粒度控制),直到经过几个轮回之后找到“论文”这个词组,这样才算成功。这相对繁琐,而且匹配方式还需要进一步解析。对于这类分词,根据解析方...原创 2019-11-24 14:58:56 · 2648 阅读 · 1 评论 -
最大熵模型简介
一 原理简介最大熵原理是一种选择随机变量统计特性最符合客观情况的准则,也称为最大信息原理。在投资时常常讲不要把所有的鸡蛋放在一个篮子里,这样可以降低风险。在信息处理中,这个原理同样适用。在数学上,这个原理称为最大熵原理。二 熵可以考虑从log\loglog函数的性质方面考虑熵的定义,下面是熵定义的公式。H(X)=−∑xp(x)logp(x)=−∑i=1np(xi)logp(xi)H...原创 2019-12-08 16:03:48 · 1947 阅读 · 1 评论 -
Kenlm初步使用----NLP小作业的完成
作业一:第一步:下载KenLM或者SRILM工具,下载中文或英文10万个句子的语料库。第二步:使用KenLM或SRILM工具,跑出自己的语言模型,将输出的概率表截图粘贴到word文档中。第三步:从下载的语料库中选择20个句子(自己造句也行),比较手算概率和模型自动计算概率的差别。在Kenlm初步使用----评估句子中"a/an"使用情况一文,已经介绍了关于kenlm的初步情况,这里就直接给...原创 2019-10-23 22:41:52 · 1793 阅读 · 0 评论 -
HMM和viterbi算法初步实践-----中文分词
代码主要来源于《Python自然语言处理实战:核心技术与算法》一书,对其中一些地方略作修改。class HMM(object): # 初始化全局信息 def __init__(self): # 主要是用于存取算法中间结果,不用每次都训练模型 self.model_file = './chapter-3/data/hmm_model.pkl' ...转载 2019-10-14 23:02:37 · 856 阅读 · 0 评论