2017-06-13 93 views
0

我最近开始研究德语文本中的情感分析项目,并计划使用词法分析器来改进结果。德语中的Python情感分析NLTK

NLTK附带德国雪球干燥器,我已经试过使用它,但我不确定结果。也许它应该是这样,但作为一个计算机科学家而不是语言学家,我有一个问题与屈曲动词形式源于不同的词干。

取“suchen”(搜索)这个词,它被认为是第一人称单数的“such”,而第三人称单数是“sucht”。

我知道也有词形化,但据我所知,没有工作的德语lemmatizer被整合到NLTK中。有GermaNet,但他们的NLTK集成似乎已被中止。

到达这一点:我希望折中的动词形式被归为同一词干,至少对于同一时期内的常规动词。如果这不是我的目标有用的要求,请告诉我为什么。如果是这样,你知道有哪些额外的资源可以帮助我实现这个目标吗?

编辑:我忘了提及,任何软件都应该可以免费用于教育和研究目的。

回答

2

作为一名计算机科学家,您肯定正在寻找正确的方向来解决这个语言问题;)。词干通常比较简单,用于信息检索任务,试图减少词典的大小,但通常不足以用于更复杂的语言分析。 Lemmatisation部分与用于词干的用例重叠,但包括将动词变形全部重写为相同的根形式(引理),并且还将“工作”区分为名词和“工作”作为动词(尽管这取决于一点lemmatiser的实施和质量)。为此,它通常需要更多信息(如POS标签,语法树),因此需要更长的时间,使其不适合IR任务,通常处理大量数据。除了GermaNet(不知道它被中止了,但从未真正尝试过它,因为它是免费的,但你必须签署协议才能访问它),还有SpaCy,你可以拥有一个SpaCy看看:https://spacy.io/docs/usage/

非常容易安装和使用。看到网站上的安装说明,然后使用下载德国的东西:

python -m spacy download de 

则:

>>> import spacy 
>>> nlp = spacy.load('de') 
>>> doc = nlp('Wir suchen ein Beispiel') 
>>> for token in doc: 
...  print(token, token.lemma, token.lemma_) 
... 
Wir 521 wir 
suchen 1162 suchen 
ein 486 ein 
Beispiel 809 Beispiel 
>>> doc = nlp('Er sucht ein Beispiel') 
>>> for token in doc: 
...  print(token, token.lemma, token.lemma_) 
... 
Er 513 er 
sucht 1901 sucht 
ein 486 ein 
Beispiel 809 Beispiel 

正如你所看到的,遗憾的是它并没有你的具体例子做了很好的工作( suchen),我不确定数字代表什么(即必须是引理编号,但不确定可以从中得到什么其他信息),但也许你可以试一试,看看它是否对你有帮助。

+0

谢谢,我一定会试一试,当我回到它。 – Florian