OpenCorpora / opencorpora

A web-based engine for creating and annotating textual corpora
http://opencorpora.org
GNU General Public License v2.0
241 stars 23 forks source link

словарь: 'щипец' неверная нормальная форма слова 'щипцы' - формы ед. ч. не используются #902

Open A-Gorby opened 4 months ago

A-Gorby commented 4 months ago
"""
import pymorphy2
morph = pymorphy2.MorphAnalyzer()
w = 'щипцы'
p = morph.parse(w)
print(p[0].normal_form)
'щипец'
p
[Parse(word='щипцы', tag=OpencorporaTag('NOUN,inan,masc plur,accs'), normal_form='щипец', score=0.6, methods_stack=((DictionaryAnalyzer(), 'щипцы', 293, 9),)),
 Parse(word='щипцы', tag=OpencorporaTag('NOUN,inan,masc plur,nomn'), normal_form='щипец', score=0.4, methods_stack=((DictionaryAnalyzer(), 'щипцы', 293, 6),))]
"""

В Большом толковом словаре русского языка есть два определния, подходящих под слово Щипцы

I. Щипцы́ - cуществительное, только множественное число, род не определяется https://gramota.ru/meta/shchiptsy Инструмент в виде двух скреплённых на шарнире стержней, служащий для сжимания, раскалывания, схватывания, выдёргивания чего-л. Сахарные щ. Щ. для завивки волос. Хирургические щ. Каминные щ. Выдернуть щипцами гвоздь. Расколоть что-л. щипцами. Однокоренные слова щипчики уменьшительное Маникюрные щ.

и

II. Щипец Существительное, мужской род, 2-е склонение Большой толковый словарь русского языка

  1. архитектура Верхняя часть торцовой стены здания, ограниченная скатами крыши.
  2. охотничий Морда собаки, волка и т.п.. Пёс с коротким щипцом.

Но в PyMorphy используется только одно из значений и, как я понимаю, не самое употребимое

В OpenCorpora также одно значение, внесенное роботом Новая лемма | Версия 382539 (Робот, 23.05.2012, 13:11) Лемма 382539

image

Просьба скорректировать

  1. Словарь
  2. и разбор в PyMorphy

Shimorina commented 4 months ago

Здравствуйте!

Боюсь, мы не сможем скорректировать словарь :(

Причина следующая: если в словаре будут две лексемы (щипец и щипцы), то тогда у словоформ щипцы, щипцов, щипцах и т. д. будут две возможных лексемы для разбора в корпусе. Мы не хотели бы вводить такую омонимию. Та же проблема будет и в pymorphy2: на слово щипцы будут выдаваться две возможные начальные формы (щипцы и щипец) и надо будет делать выбор между этими двумя формами.

Слова подобного типа у нас в словаре слиты. См. также деньги в словаре с начальной формой деньга.

A-Gorby commented 4 months ago

Не соглашусь, что PyMorphy не дает множественного разбора, в т.ч. и по ононимии Вот классический пример ("За песчаной косой лопоухий косой пал под острой косой косой бабы с косой"):

morph.parse('косой')
[Parse(word='косой', tag=OpencorporaTag('NOUN,inan,femn sing,ablt'), normal_form='коса', score=0.25, methods_stack=((DictionaryAnalyzer(), 'косой', 55, 4),)),
 Parse(word='косой', tag=OpencorporaTag('ADJF,Subx,Qual masc,sing,nomn'), normal_form='косой', score=0.125, methods_stack=((DictionaryAnalyzer(), 'косой', 1864, 0),)),
 Parse(word='косой', tag=OpencorporaTag('ADJF,Subx,Qual inan,masc,sing,accs'), normal_form='косой', score=0.125, methods_stack=((DictionaryAnalyzer(), 'косой', 1864, 4),)),
 Parse(word='косой', tag=OpencorporaTag('ADJF,Subx,Qual femn,sing,gent'), normal_form='косой', score=0.125, methods_stack=((DictionaryAnalyzer(), 'косой', 1864, 8),)),
 Parse(word='косой', tag=OpencorporaTag('ADJF,Subx,Qual femn,sing,datv'), normal_form='косой', score=0.125, methods_stack=((DictionaryAnalyzer(), 'косой', 1864, 9),)),
 Parse(word='косой', tag=OpencorporaTag('ADJF,Subx,Qual femn,sing,ablt'), normal_form='косой', score=0.125, methods_stack=((DictionaryAnalyzer(), 'косой', 1864, 11),)),
 Parse(word='косой', tag=OpencorporaTag('ADJF,Subx,Qual femn,sing,loct'), normal_form='косой', score=0.125, methods_stack=((DictionaryAnalyzer(), 'косой', 1864, 13),))]

Хотелось бы, конечно, чтобы правила (включения в словарь и последующего разбора) для всех слов были бы примерно одинаковы. Хотя, конечно, авторское видение никто не отменял. Но пользователи сильно удивляются)