使用 python 在希腊语中查找单词的 class(词性标记)
Find a word's class (POS tag) in Greek using python
我目前正在开发文档 classification 应用程序。我将 python 与 NLTK 和 wordnet 一起用于英语,这使我能够找到单词的 class。我的问题是我目前还没有找到用其他语言(例如希腊语)做同样事情的方法。
我在 http://wordnet.okfn.gr/downloads/ 中找到了希腊语 Wordnet。
我将文件夹保存在 NLTK 语料库文件夹中并尝试加载它:
from nltk.corpus import wordnet-master
但是我得到一个语法错误
SyntaxError: invalid syntax
如果我将名称更改为 wordnet_master,我会收到 ImportError
ImportError: cannot import name 'wordnet_master'
有没有关于如何导入 Greek Wordnet 的建议?提前致谢
NLTK 的 wordnet 界面默认使用英语。调用 synsets()
时,可以使用一个额外的 lang
参数来指定您感兴趣的语言。当与 wn.lang()
中的可用语言一起使用时,它似乎可以正常工作。
这里有一些希腊语、西班牙语和意大利语的例子。
>>> from nltk.corpus import wordnet as wn
>>> wn.synsets('ενοχλώ', lang='ell')
[Synset('irritate.v.02'), Synset('harass.v.01'), Synset('tease.v.01')]
>>> wn.synsets('molestar', lang='spa')
[Synset('interrupt.v.02'), Synset('tease.v.02'), Synset('disturb.v.01'), Synset('faze.v.01'), Synset('annoy.v.01'), Synset('tease.v.01'), Synset('chafe.v.01'), Synset('trouble.v.02')]
>>> wn.synsets('annoiare', lang='ita')
[Synset('tire.v.02'), Synset('tire.v.01'), Synset('bore.v.01')]
,使用包装器 class 强制使用默认语言,这可能对您的使用有好处。
谢谢大家的帮助。
最后我找到了解决方法。 WordNet 通过 omw 语料库支持希腊语(开箱即用)。貌似不行,看了下Greek encoding in PYTHON,用了u前缀,问题解决了!
import nltk
from nltk.corpus import wordnet as wn
wn.synsets(u'ενοχλώ', lang='ell')
导致
[Synset('irritate.v.02'), Synset('harass.v.01'), Synset('tease.v.01')]
请注意相关单词前的 u(在本例中为“ενοχλώ”)。
同泰文
wn.synsets(u'หายใจ', lang='tha')
给了
[Synset('breathe.v.01'), Synset('respire.v.02')]
我目前正在开发文档 classification 应用程序。我将 python 与 NLTK 和 wordnet 一起用于英语,这使我能够找到单词的 class。我的问题是我目前还没有找到用其他语言(例如希腊语)做同样事情的方法。
我在 http://wordnet.okfn.gr/downloads/ 中找到了希腊语 Wordnet。 我将文件夹保存在 NLTK 语料库文件夹中并尝试加载它:
from nltk.corpus import wordnet-master
但是我得到一个语法错误
SyntaxError: invalid syntax
如果我将名称更改为 wordnet_master,我会收到 ImportError
ImportError: cannot import name 'wordnet_master'
有没有关于如何导入 Greek Wordnet 的建议?提前致谢
NLTK 的 wordnet 界面默认使用英语。调用 synsets()
时,可以使用一个额外的 lang
参数来指定您感兴趣的语言。当与 wn.lang()
中的可用语言一起使用时,它似乎可以正常工作。
这里有一些希腊语、西班牙语和意大利语的例子。
>>> from nltk.corpus import wordnet as wn
>>> wn.synsets('ενοχλώ', lang='ell')
[Synset('irritate.v.02'), Synset('harass.v.01'), Synset('tease.v.01')]
>>> wn.synsets('molestar', lang='spa')
[Synset('interrupt.v.02'), Synset('tease.v.02'), Synset('disturb.v.01'), Synset('faze.v.01'), Synset('annoy.v.01'), Synset('tease.v.01'), Synset('chafe.v.01'), Synset('trouble.v.02')]
>>> wn.synsets('annoiare', lang='ita')
[Synset('tire.v.02'), Synset('tire.v.01'), Synset('bore.v.01')]
谢谢大家的帮助。 最后我找到了解决方法。 WordNet 通过 omw 语料库支持希腊语(开箱即用)。貌似不行,看了下Greek encoding in PYTHON,用了u前缀,问题解决了!
import nltk
from nltk.corpus import wordnet as wn
wn.synsets(u'ενοχλώ', lang='ell')
导致
[Synset('irritate.v.02'), Synset('harass.v.01'), Synset('tease.v.01')]
请注意相关单词前的 u(在本例中为“ενοχλώ”)。
同泰文
wn.synsets(u'หายใจ', lang='tha')
给了
[Synset('breathe.v.01'), Synset('respire.v.02')]