大数据文摘作品
编译:糖竹子、吴双、钱天培
自然语言处理(NLP)是一种艺术与科学的结合,旨在从文本数据中提取信息。在它的帮助下,我们从文本中提炼出适用于计算机算法的信息。从自动翻译、文本分类到情绪分析,自然语言处理成为所有数据科学家的必备技能之一。
在这篇文章中,你将学习到最常见的10个NL P任务,以及相关资源和代码。
为什么要写这篇文章?
对于处理NL P问题,我也研究了一段时日。这期间我需要翻阅大量资料,通过研究报告,博客和同类NL P问题的赛事内容学习该领域的最新发展成果,并应对NL P处理时遇到的各类状况。
因此,我决定将这些资源集中起来,打造一个对N L P常见任务提供最新相关资源的一站式解决方案。下方是文章中提到的任务列表及相关资源。那就一起开始吧。
目录:
1.词干提取
2.词形还原
3.词向量化
4.词性标注
5.命名实体消岐
6.命名实体识别
7.情感分析
8.文本语义相似分析
9.语种辨识
10.文本总结
1.词干提取
什么是词干提取?词干提取是将词语去除变化或衍生形式,转换为词干或原型形式的过程。词干提取的目标是将相关词语还原为同样的词干,哪怕词干并非词典的词目。例如,英文中:
1.b e a u t i f u l和b e a u t i f u l l y的词干同为b e a u t i
2.G o o d,b e t t e r和b e s t的词干分别为g o o d,b e t t e r和b e s t。
相关论文:M a r t i n P o r t e r的波特词干算法原文
相关算法:在P yt h o n上可以使用P o r t e r2词干算法
(h t t p s://t a r t a r u s.o r g/m a r t i n/P o r t e r S t e m m e r/d e f.t xt)
程序实现:这里给出了在p yt h o n的s t e mm i n g库中使用
(/mchaput/stemming/src/5c242aa592a6 d4f0e9a0b2e1afdca4fd757b8e8a/stemming/porter2.py?at=d efault&fileviewer=file-view-default)
tensorflow入门教程P o r t e r2算法做词干提取的代码:
#!pip install stemmingfrom stemming.porter2 import stem stem("casually")
2.词形还原
什么是词形还原?词形还原是将一组词语还原为词源或词典的词目形式的过程。还原过程考虑到了P O S问题,即词语在句中的语义,词语对相邻语句的语义等。例如,英语中:
1.b e a u t i f u l和b e a u t i f u l l y被分别还原为b e a u t i f u l和b e a u t i f u l l y。
2.g o o d,b e t t e r和b e st被分别还原为g o o d,g o o d和g o o d
相关论文1:这篇文章详细讨论了词形还原的不同方法。想要了解传统词形还原的工作原理必读。(h t t p://www.i j r a t.o r g/d o wn l o a d s/i c a t e st2015/I CA TE S T-2015127.p d f)
相关论文2:这篇论文非常出,讨论了运用深度学习对变化丰富的语种做词形还原时会遇到的问题。
(h t t p s://a c a d e m i c.o u p.c om/ds h/a r t i c l e-a b s t r a c t/d o i/10.1093/l l c/f q w034/2669790/L e m m a t i za t i o n-f o r-v a r i a t i o n-r i c h-l a n g u a g e s-u s i n g)
数据集:这里是Tr e e b a n k-3数据集的链接,你可以使用它创建一个自己的词形还原工具。
(h t t p s://c a t a l o g.l d c.u p e n n.ed u/l d c99t42)
程序实现:下面给出了在s p a c y上的英语词形还原代码
#!pip install spacy
#python -m spacy download en
import spacy
nlp=spacy.load("en")
doc="good better best"
for token in nlp(doc):
print(token,token.lemma_)
3.词向量化
什么是词向量化?词向量化是用一组实数构成的向量代表自然语言的叫法。这种技术非常实用,因为电脑无法处理自然语言。词向量化可以捕捉到自然语言和实数间的本质关系。通过词向量化,一个词语或者一段短语可以用一个定维的向量表示,例如向量的长度可以为100。
例如:“M a n”这个词语可以用一个五维向量表示。