如何在python中将形容词转换为名词(pymorphy2)?

t1qtbnec  于 2023-05-21  发布在  Python
关注(0)|答案(1)|浏览(101)

我有一个俄语单词(这实际上是困难所在)。是个形容词。我需要把它变成名词形式。
我发现了一个有趣的库,它可以解析单词,改变和规范化它们。这是图书馆:pymorphy2,但无论我怎么做,都得不到预期的结果。我想收到:
这些是城市的名字。左边是我从数据中得到的单词的形式,右边是我需要的形式。

киселевский ---> киселевск
юргинский ---> юрга

到目前为止,左边的单词只是被定义为形容词的不同形式,如果你看一下它们的分析。有没有办法把它们转换成名词?
小字解析代码:

import pymorphy2
morph = pymorphy2.MorphAnalyzer()
word = 'Киселевский'

test = morph.parse(word)[0]
test.tag.POS

>>'ADJF'

test_2 = morph.parse(word)[0].normal_form
test_2

>>'киселевский'

test.lexeme
>> [Parse(word='киселевский', tag=OpencorporaTag('ADJF masc,sing,nomn'), normal_form='киселевский', score=1.0, methods_stack=((FakeDictionary(), 'киселевский', 16, 0), (KnownSuffixAnalyzer(min_word_length=4, score_multiplier=0.5), 'вский'))),
 Parse(word='киселевского', tag=OpencorporaTag('ADJF masc,sing,gent'), normal_form='киселевский', score=1.0, methods_stack=((FakeDictionary(), 'киселевского', 16, 1), (KnownSuffixAnalyzer(min_word_length=4, score_multiplier=0.5), 'вский'))),
 Parse(word='киселевскому', tag=OpencorporaTag('ADJF masc,sing,datv'), normal_form='киселевский', score=1.0, methods_stack=((FakeDictionary(), 'киселевскому', 16, 2), (KnownSuffixAnalyzer(min_word_length=4, score_multiplier=0.5), 'вский'))),
 Parse(word='киселевского', tag=OpencorporaTag('ADJF anim,masc,sing,accs'), normal_form='киселевский', score=1.0, methods_stack=((FakeDictionary(), 'киселевского', 16, 3), (KnownSuffixAnalyzer(min_word_length=4, score_multiplier=0.5), 'вский'))),
 Parse(word='киселевский', tag=OpencorporaTag('ADJF inan,masc,sing,accs'), normal_form='киселевский', score=1.0, methods_stack=((FakeDictionary(), 'киселевский', 16, 4), (KnownSuffixAnalyzer(min_word_length=4, score_multiplier=0.5), 'вский'))),
 Parse(word='киселевским', tag=OpencorporaTag('ADJF masc,sing,ablt'), normal_form='киселевский', score=1.0, methods_stack=((FakeDictionary(), 'киселевским', 16, 5), (KnownSuffixAnalyzer(min_word_length=4, score_multiplier=0.5), 'вский')))...]
mwkjh3gx

mwkjh3gx1#

你需要一个数据库(例如,通过抓取Wiktionary)来做到这一点,因为关系形容词不被认为是它们所派生的名词的一种形式;它们被认为是不同的单词(词素),如解析对象的pymorphy2 ID(属性methods_stack[0][2])所指示的。
对于城市的名称,我认为这将更加困难,因为源地名与其关系形容词之间的转换规则是不规则的(就像在英语中一样),并且您可能只能找到特定规模以上的城市的适当数据。

相关问题