PHP синонимайзер

Статус
В этой теме нельзя размещать новые ответы.
Разъясните пожалуйста.
Не совсем понял...))

Ну вот, к примеру, запись из паблик-словаря синонимов.

Код:
остановка|отключение,перерыв,задержка,приостановка,заминка,застой,пауза,передышка,антракт

Как видим, существительное "остановка" - женского рода. Значит после замены, скажем, в фразе "Непредвиденная остановка" подойдут также слова только женского рода:

- непредвиденная задержка;
- непредвиденная заминка;
- непредвиденная передышка;

и т.д.

Это же справедливо и для словоформ (остановку -> задержку)

Но естественно, совсем не годится для слов другого рода: фраза "непредвиденная перерыв" уже будет неверной с точки зрения грамматики.

Потому задача сразу отсеять базу от несогласованных родов (для существительных к примеру), оставив только нужное:

Код:
остановка|задержка,приостановка,заминка,пауза,передышка

Класс phpMorphy позволяет это сделать.

P.S. С другой стороны - теоретически с помощью класса морфологии можно одновременно с заменой рода - склонять и прилагательное, однако, это достаточно сложно, ввиду того, что прилагательные далеко не всегда стоят рядом с существительными...
 
Вот какой-то словарь синонимов на винте валялся. Если интересно - взгляните. Кодировка: КОИ8-Р. Судя по шапке - это из движка поиска Датапарк, возможно, там есть более свежая версия. УДачи :)
 

Вложения

  • russian.big.syn.rar
    68,8 KB · Просмотры: 39
Ребята, есть приватный словарь синонимов.
НЕ могу понять его логики.
Если кому-то интересно, отпишите в приват.
Сразу прошу - не для паблика. Только в нулл под очень высоким хайдом.
 
Словарь синонимов в sql формате? Есть словари которые сделаны не в формате слово|синоним, а все в разброс, для определеного скрипта, такой чтоб вернуть в форму слово|синоним нужно будет понять как работает скрипт, так что мой совет, забей на это. В "скидываемся" постоянно скидываются на базы синонимов и похожие скрипты, за пару баксов можешь получить пару примеров для теста.

Глянь исче сюда: и сюда: тоже интересная инфа если начал текст каверкать
 
и сюда:*** скрытое содержание ***тоже интересная инфа если начал текст каверкать

Про парсер mystem от Яндекса давненько слышал, но как понимаю - он идёт как отдельное приложение (под Линукс, Windows и т.п.), хотя от этого может только производительность выше...

Кто-нибудь пропобовал взаимодействовать с ним с PHP? В том смысле, что если его разместить, например, на VPSе и как-то вызывать (пока не знаю как) ;)
 
phpmorphy можно использовать в двух режимах.

Режим 1 - берем базу своих синонимов, прогоняем все через phpMorphy, получаем готовую базу в 10-20 раз большую исходной, сохраняем, и при синонимайзе по ней уже работаем обычным str_replace(). Пример:

Исходная база:
абориген|туземец,местный
абсолютно|совершенно,полностью

После "обработки" phpMorphy (для каждого слова берем все его возможные формы и сохраняем в базу)
абориген|туземец,местный
аборигена|туземца,местного
аборигену|туземцу,местному
аборигенам|туземцам,местным
...
абсолютный|совершенный
абсолютные|совершенные
....

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

Режим 2 - как тут предлагали выше. Идем по тексту, находим слово, переводим в исходную форму, пробиваем по нашей базе синоним для слова в этой исходной форме, полученное слово-синоним "склоняем" обратно в нужную форму.

В теории это все звучит очень хорошо. На практике читаемости добиться невозможно. На любое слово phpMorphy выдает сразу несколько исходных, в том числе довольно бредовых. Я сейчас уже не вспомню конкретные примеры, но там что-то типа как вот частицу "для" оно в исходную форму переводит как глагол "длить", и потом если найти для этого "длить" синоним (допустим, "удлинять"), то "для" - это получится, соответственно, "удлиняя". Итого "Машина для нарезки" ссинонимизируется в "Механизм удлиняя фарши" (т.к. "нарезки" - это помимо прочего множественное число от "нарезка", а синоним к "нарезка" - допустим, "фарш", переводим обратно во множественное число - получаем опять херню). И тому подобное на каждом шагу. Короче бред.

Итого, если по первому пути еще можно добиться нормальных результатов (хоть и хлопотно), то второй без детального разбора предложений - это путь в никуда. А разбор предложений это уже совсем другой уровень.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху