spacy可以变位不定式动词吗?

The*_*Cat 5 spacy

我想创建一个工具来帮助人们进行动词变位,特别是波兰语。

\n

给定一个不定式动词,例如。mie\xc4\x87(拥有)是否可以使用 SpaCy 检索该动词的第一人称和第二人称形式,在本例中为mam(我有)和masz(你有)?

\n

pl_core_news_sm我可以使用下载并加载波兰模型spacy.load。准确地将mam和masztoken.lemma_识别为相同的引理,并且“人”信息可在- 但有没有办法进行反向查找,即给定不定式找到共轭形式?token.morph

\n

我已经开始查看该类Matcher并创建一个类似的模式[{"LEMMA": infinitive_verb}],但我不知道如何进行这种查找。

\n

Fre*_*man 4

我不是波兰人,但据我所知,用于波兰语处理的一个流行库是morfeusz2,您可以morfeusz2非常轻松地与 SpaCy 结合使用。

\n

所以,让我用一个例子来解释它,正如我所说,我的代码将使用 themorfeusz2来分析不定式动词并获取动词的基本形式(或引理),之后,它使用为 SpaCy 的 Matcher 类创建这个简洁的模式它会继续使用 SpaCy 将该模式与不定式动词进行匹配。最后,它从匹配的标记中获取这些共轭形式。

\n

好的,首先像这样安装:

\n
pip install morfeusz2 \n
Run Code Online (Sandbox Code Playgroud)\n

这是一个简单的例子:

\n
import spacy\nimport morfeusz2\n\n#you can load polish language model in SpaCy like this\nnlp = spacy.load("pl_core_news_sm")\n\nmorfeusz = morfeusz2.Morfeusz()\n\n#your verb\ninfinitive_verb = "mie\xc4\x87"\n\n#analyze infinitive verb using Morfeusz2\nanalysis = morfeusz.analyse(infinitive_verb)\n\nbase_form = analysis[0][2][1]\n\npattern = [{"LEMMA": base_form}]\n\ndoc = nlp(infinitive_verb)\nmatcher = spacy.matcher.Matcher(nlp.vocab)\nmatcher.add("VerbConjugation", [pattern])\nmatches = matcher(doc)\n\nconjugated_forms = []\nfor match_id, start, end in matches:\n    matched_token = doc[start:end]\n    conjugated_forms.append(matched_token.text)\n\n# conjugated forms\nprint(conjugated_forms)\n
Run Code Online (Sandbox Code Playgroud)\n

powodzenia,m\xc3\xb3j przyjacielu!

\n