NLP入门+实战必读:一 文教会你最常见的10种自然

博狗博彩网 2019-06-12 09:26171http://www.geo-hitch.com/admin

5.命名实体消岐

6.命名实体识别

7.情感分析

8.文本语义相似分析

9.语种辨识

10. 文本总结

1. 词干提取

什么是词干提取?词干提取是将词语去除变化或衍生形式,转换为词干或原型形式的过程。词干提取的目标是将相关词语还原为同样的词干,哪怕词干并非词典的词目。例如,英文中:

1.beautiful和beautifully的词干同为beauti

2.Good,better和best 的词干分别为good,better和best。

相关论文:Martin Porter的波特词干算法原文

相关算法:在Python上可以使用Porter2词干算法(https://tartarus.org/martin/PorterStemmer/def.txt)

程序实现:这里给出了在python的stemming库中使用(https://bitbucket.org/mchaput/stemming/src/5c242aa592a6d4f0e9a0b2e1afdca4fd757b8e8a/stemming/porter2.py?at=default&fileviewer=file-view-default)

Porter2算法做词干提取的代码:

#!pip install stemmingfrom stemming.porter2 import stemstem("casually")

2.词形还原

什么是词形还原? 词形还原是将一组词语还原为词源或词典的词目形式的过程。还原过程考虑到了POS问题,即词语在句中的语义,词语对相邻语句的语义等。例如,英语中:

1.beautiful和beautifully被分别还原为beautiful和beautifully。

2.good, better和best被分别还原为good, good和good

相关论文1: 这篇文章详细讨论了词形还原的不同方法。想要了解传统词形还原的工作原理必读。()

相关论文2: 这篇论文非常出色,讨论了运用深度学习对变化丰富的语种做词形还原时会遇到的问题。(https://academic.oup.com/dsh/article-abstract/doi/10.1093/llc/fqw034/2669790/Lemmatization-for-variation-rich-languages-using)

数据集: 这里是Treebank-3数据集的链接,你可以使用它创建一个自己的词形还原工具。(https://catalog.ldc.upenn.edu/ldc99t42)

程序实现:下面给出了在spacy上的英语词形还原代码

#!pip install spacy#python -m spacy download enimport spacynlp=spacy.load("en")doc="good better best"for token in nlp(doc): print(token,token.lemma_)

3. 词向量化

什么是词向量化?词向量化是用一组实数构成的向量代表自然语言的叫法。这种技术非常实用,因为电脑无法处理自然语言。词向量化可以捕捉到自然语言和实数间的本质关系。通过词向量化,一个词语或者一段短语可以用一个定维的向量表示,例如向量的长度可以为100。

例如:“Man”这个词语可以用一个五维向量表示。

这里的每个数字代表了词语在某个特定方向上的量级。

相关博文:这篇文章详细解释了词向量化。

(https://www.analyticsvidhya.com/blog/2017/06/word-embeddings-count-word2veec/)

相关论文:这篇论文解释了词向量化的细节。深入理解词向量化必读。

(https://www.analyticsvidhya.com/blog/2017/10/essential-nlp-guide-data-scientists-top-10-nlp-tasks/)

相关工具:这是个基于浏览器的词向量可视化工具。

(https://ronxin.github.io/wevi/)

预训练词向量:这里有一份facebook的预训练词向量列表,包含294种语言。

(https://github.com/facebookresearch/fastText/blob/master/pretrained-vectors.md)

这里可以下载google news的预训练词向量。

(https://drive.google.com/file/d/0B7XkCwpI5KDYNlNUTTlSS21pQmM/edit)

#!pip install gensimfromgensim.models.keyedvectors import KeyedVectorsword_vectors=KeyedVectors.load_word2vec_format('GoogleNews-vectors-negative300.bin',binary=True)word_vectors['human']

程序实现:这段代码可以用gensim训练你自己的词向量

sentence=[['first','sentence'],['second','sentence']]model = gensim.models.Word2Vec(sentence, min_count=1,size=300,workers=4)

4. 词性标注

什么事词性标注?简单来说,词性标注是对句子中的词语标注为名字、动词、形容词、副词等的过程。例如,对句子“Ashok killed the snake with a stick”,词性标注会识别:

Ashok 代词

killed 动词

the 限定词

snake 名词

with 连词

a 限定词

stick 名词

. 标点

论文1:

choi aptly的这篇《The Last Gist to theState-of-the-Art 》介绍了一种叫动态特征归纳的新方法。这是目前词性标注最先进的方法。(https://aclweb.org/anthology/N16-1031.pdf)

论文2:这篇文章介绍了通过隐马尔科夫模型做无监督词性标注学习的方法。(https://transacl.org/ojs/index.php/tacl/article/viewFile/837/192)

程序实现:这段代码可以在spacy上做词性标注

#!pip install spacy#!python -m spacy download en nlp=spacy.load('en')sentence="Ashok killed the snake with a stick"for token in nlp(sentence): print(token,token.pos_)

5.命名实体消歧

什么是命名实体消岐?命名实体消岐是对句子中的提到的实体识别的过程。例如,对句子“Apple earned a revenue of 200 Billion USD in 2016”,命名实体消岐会推断出句子中的Apple是苹果公司而不是指一种水果。一般来说,命名实体要求有一个实体知识库,能够将句子中提到的实体和知识库联系起来。

论文1:Huang的这篇论文运用了基于深度神经网络和知识库的深层语义关联模型,在命名实体消岐上达到了领先水平。

(https://arxiv.org/pdf/1504.07678.pdf)

论文2:Ganea and Hofmann的这篇文章运用了局部神经关注模型和词向量化,没有人为设置特征。(https://arxiv.org/pdf/1704.04920.pdf)

6. 命名实体识别

体识别是识别一个句子中有特定意义的实体并将其区分为人名,机构名,日期,地名,时间等类别的任务。例如,一个NER会将一个这样的句子:

“Ram of Apple Inc. travelled to Sydney on 5th October 2017”

返回如下的结果:

Ram

of

Apple ORG

Inc. ORG

travelled

to

Sydney GPE

on

5th DATE

October DATE

2017 DATE

这里,ORG代表机构组织名,GPE代表地名。

然而,当NER被用在不同于该NER被训练的数据领域时,即使是最先进的NER也往往表现不佳。

博狗博彩网_双色球走试图:NLP入门+实战必读:一 文教会你最常见的10种自然

Copyright © 2002-2017 博狗博彩网_双色球走试图 版权所有 备案号:鄂ICP备12013455号-2 鄂公网安备61032703000317