vas3k / python-glr-parser

Попытка сделать свой GLR-парсер для русского языка на Python
140 stars 28 forks source link

Поиск фамилий #2

Closed bzaar closed 10 years ago

bzaar commented 10 years ago

Хочу найти женские фамилии в именительном падеже. Запускаю example.py со следующими входными данными:

grammar = u"""
    S = noun<gram=Surn,gram=femn,gram=nomn>
"""
text = u"""
Иванов Петров Сидоров
Иванова Петрова Сидорова
"""

Получаю:

FOUND:
Иванов
FOUND: Петров
FOUND: Сидоров

FOUND: Иванова
FOUND: Петрова

Ожидаемый результат:

FOUND:
Иванова
FOUND: Петрова
FOUND: Сидорова

Что-то не так делаю или это баг?

vas3k commented 10 years ago

Проверил ваш пример. Действительно, "Иванова" в первую очередь разбирается не как женская фамилия, а как мужская фамилия "Иванов" в родительном падеже: NOUN,anim,masc,Sgtm,Surn sing,gent. Это еще раз подчеркивает важность issue #1, буду над ним работать, отпишусь если что-то получится.

vas3k commented 10 years ago

А, извиняюсь, я понял все наоборот. Видимо #1 так на меня пойдействовал. Почему-то по граммеме femn сматчился Иванов и Петров (и не сматчился Сидоров), которые в своих списках граммем (NOUN,anim,masc,Sgtm,Surn sing,nomn) не имеют femn. Это уже баг, с ним разберусь в первую очередь.

vas3k commented 10 years ago

Новый коммит должен решить проблему. Надеюсь ничего не сломал. Надо будет написать тесты на досуге что-ли.

bzaar commented 10 years ago

Взял коммит eb82cd7. Ожидаемого результата не увидел. Получаю пустую выдачу, т.е., что ни одно из слов не удовлетворяет правилу.

vas3k commented 10 years ago

Ага, это потому что всё еще активен issue #1, из-за чего "Сидорова" и другие определяется как мужской род. Так что пустая выдача и должна быть, а #1 сейчас займусь.

vas3k commented 10 years ago

Вот такой вот двух-ходовый баг вы нашли, ага :(