Tag: wordnet

wordnet lemmatization和pos标签在python中

我想在python中使用wordnet lemmatizer,并且我已经了解到默认的pos标签是NOUN,并且它不会为动词输出正确的引理,除非pos标签显式指定为VERB。 我的问题是为了准确地进行上述的词性化,最好的办法是什么? 我使用nltk.pos_tag进行了pos标记,而且我正在将树库pos标记集成到wordnet兼容的pos标记中。 请帮忙 from nltk.stem.wordnet import WordNetLemmatizer lmtzr = WordNetLemmatizer() tagged = nltk.pos_tag(tokens) 我得到NN,JJ,VB,RB中的输出标签。 如何将这些更改为与wordnet兼容的标签? 还有,我必须训练nltk.pos_tag()带标签的语料库,或者我可以直接在我的数据上使用它来评估?

Python:string的语义相似度得分

有没有用于计算一对句子的语义相似度分数的库? 我知道WordNet的语义数据库,以及如何为2个单词生成分数,但是我正在寻找能够在整个句子和输出中执行所有预处理任务(如端口词干,停用词删除等)的库两个句子如何相关的分数。 我发现了一个使用.NET框架编写的工作 ,它使用一系列预处理步骤来计算分数。 有没有任何项目,在Python中做到这一点? 我不是在寻找能够帮助我find分数的操作顺序(就像这里要求的那样) 我喜欢自己实现每个阶段,或者从不同的库中粘贴函数,以便它可以用于句对,但是我主要需要这个工具来testing数据的推论。 编辑:我正在考虑使用NLTK和计算每两个单词对这两个句子迭代的得分,然后从结果的标准偏差中得出推论,但我不知道这是否是一个合理的相似性估计。 另外,这将花费很长的时间。 再次,我正在寻找已经实现这个智能的项目/库。 东西,让我这样做: import amazing_semsim_package str1='Birthday party ruined as cake explodes' str2='Grandma mistakenly bakes cake using gunpowder' >>similarity(str1,str2) >>0.889

Stemmers vs Lemmatizers

自然语言处理(NLP),特别是英语的自然语言处理已经发展到如果存在“完美”的问题,词干将成为一个古老的技术的阶段。 这是因为词干改变词汇/标记的表面forms变成一些毫无意义的词干。 然后,“完美”的lemmatizer的定义是有问题的,因为不同的NLP任务将需要不同程度的lemmatization。 例如在动词/名词/形容词forms之间转换单词 。 词干 [in]: having [out]: hav Lemmatizers [in]: having [out]: have 所以现在的问题是,英文词干今天有用吗? 因为我们有大量的英语推理工具 如果不是,那么我们应该如何build立强大的可以接受nounify , verbify , adjectify和adverbify预处理的adverbify ? 如何将词形化任务轻松地缩放到与英语具有相似形态结构的其他语言?

在动词/名词/形容词forms之间转换单词

我想要一个能够翻译/转换不同词类的python库函数。 有时它应该输出多个单词(例如,“编码器”和“编码”都是从动词“代码”的名词,一个是另一个的对象的主题) # :: String => List of String print verbify('writer') # => ['write'] print nounize('written') # => ['writer'] print adjectivate('write') # => ['written'] 我主要关心动词<=>名词,我要写一个记笔记的程序。 即我可以写“咖啡因拮抗A1”或“咖啡因是一个A1拮抗剂”,并与一些NLP它可以发现他们的意思是同样的事情。 (我知道这并不容易,而且需要parsingNLP,而不是只是标记,但是我想破解一个原型)。 类似的问题…把形容词和副词转换成它们的名词forms (这个答案只是源于POS,我想要在POS之间) ps在语言学中称为转换http://en.wikipedia.org/wiki/Conversion_%28linguistics%29

如何检查一个单词是否与Python的英文单词?

如果一个单词在英语词典中,我想检查一个Python程序。 我相信nltk wordnet的界面可能是要走的路,但我不知道如何使用它来完成这么简单的任务。 def is_english_word(word): pass # how to I implement is_english_word? is_english_word(token.lower()) 在将来,我可能想要检查一个单词的单数forms是否在字典中(例如,属性 – >属性 – >英文单词)。 我将如何实现这一目标?