Обсценная лексика

112 views
Skip to first unread message

iskh...@gmail.com

unread,
Jun 1, 2015, 10:37:17 AM6/1/15
to pymo...@googlegroups.com
Как я понял, в словарях отсутствуют матерные слова. Если ли способ добавить их (хотя бы локально)?

Mikhail Korobov

unread,
Jun 1, 2015, 11:43:31 AM6/1/15
to pymo...@googlegroups.com, iskh...@gmail.com, iskh...@gmail.com
Добрый день.

В словарях некоторые слова есть - я попробовал поискать тут те, которые пришли на ум, почти все были (возможно, из-за недостатка фантазии :)

В идеале, недостающие слова бы добавить в официальный словарь OpenCorpora. Можно им написать тут: https://github.com/OpenCorpora/opencorpora/issues или тут: https://groups.google.com/forum/?fromgroups#!forum/opencorpora-dev.

Можно еще собрать свой словарь с дополнительными словами самостоятельно. Чтоб сделать это, нужно:

1. Скачать XML-словарь OpenCorpora;
2. добавить туда недостающие слова;
3. скомпилировать в формат, который понимает pymorphy2.

В репозитории https://github.com/kmike/pymorphy2-dicts есть скрипты для (1) и (3) - см. update_ru.py; (2) нужно как-то автоматизировать самому. Формат XML словаря описан тут, но там вроде описание немного устаревшее - вот этот пример тоже может быть полезен.

Третий вариант - написать свой "unit", который бы выдавал информацию из дополнительного словаря, и добавить его в units, передаваемые MorphAnalyzer. Весь анализ (и по словарю, и эвристики для предсказания) реализован через эти "юниты", они все лежат тут: https://github.com/kmike/pymorphy2/tree/master/pymorphy2/units. API не задокументирован, но я его менять не планирую. По умолчанию используется вот этот набор юнитов; юнит с кастомным словарем,думаю, можно добавить в группу с units.DictionaryAnalyzer().

Мне кажется, что иметь такой юнит для подключения кастомный словарей в самом pymorphy2 - хорошее дело, так что если будет PR с этой фичей, то постараюсь его смерджить.

понедельник, 1 июня 2015 г., 19:37:17 UTC+5 пользователь iskh...@gmail.com написал:

iskh...@gmail.com

unread,
Jun 1, 2015, 12:59:25 PM6/1/15
to pymo...@googlegroups.com, iskh...@gmail.com
Я уже столкнулся как минимум с отсутствием слова "пидор".

Mikhail Korobov

unread,
Jun 1, 2015, 4:06:27 PM6/1/15
to pymo...@googlegroups.com, iskh...@gmail.com, iskh...@gmail.com

понедельник, 1 июня 2015 г., 21:59:25 UTC+5 пользователь iskh...@gmail.com написал:
Я уже столкнулся как минимум с отсутствием слова "пидор".

Лучше всего написать в OpenCorpora, чтоб добавить все недостающие слова там.
 

Мария Левченко

unread,
Jul 15, 2015, 5:01:32 PM7/15/15
to pymo...@googlegroups.com, iskh...@gmail.com
 Михаил, а как лучше сделать что-то вроде надстройки над опенкорпоровским словарем под конкретный корпус текстов?
 Например, прилагательное "милой" числится именем собственным, как и стандартно просторечные или устаревшие глагольные формы на -ася типа расплелася  или краткие прилагательные "белы".
Хотелось бы как-то это массово поправить - или есть смысл писать Опенкорпоре?

Mikhail Korobov

unread,
Jul 30, 2015, 12:23:29 PM7/30/15
to pymorphy, maryle...@gmail.com, iskh...@gmail.com, maryle...@gmail.com
Мне кажется, писать о таких ошибках Опенкорпоре смысл есть; лучше это сделать. Лучше править общий словарь, если можно.

Под конкрентый корпус - вопрос нерешенный. Т.е. можно, например, функцию питонью сделать, которая бы сначала слово смотрела в своем словарике, а только после этого использовала pymorphy2. Или написать "unit" анализатора, который бы использовал дополнительный словарь, и скомпилировать такой словарь со своей лексикой. Это все не очень удобно; хорошо бы иметь как-то "стандартизированное" решение. Но его пока, к сожалению, нет.

четверг, 16 июля 2015 г., 2:01:32 UTC+5 пользователь Мария Левченко написал:
Reply all
Reply to author
Forward
0 new messages