Как устранить неполадки в работе Mecab Parser - PullRequest
0 голосов
/ 02 декабря 2018

ПРЕДПОСЫЛКА : Я создал специальную поисковую систему, которая отлично работает на английском языке, но не работает на японском языке, несмотря на подтверждение от моего хост-сервера, что я правильно выполнил установку японского синтаксического анализатора mecab.Мои собственные проверки показывают следующее:

1) ПОКАЗАТЬ СОЗДАТЬ СТОЛ :

FULLTEXT KEY search_newsletter (letter_title, letter_abstract, letter_body) / *! 50100 с парсером mecab * /) ENGINE = InnoDB AUTO_INCREMENT = 5 CHARSET ПО УМОЛЧАНИЮ = latin1

2) ПОКАЗАТЬ ПЛАГИНЫ :

нграм |АКТИВНЫЙ |FTPARSER |NULL |GPL |мекаб |АКТИВНЫЙ |FTPARSER |libpluginmecab.so |GPL

РЕАЛИЗАЦИЯ

1) Оператор MYSQL :

$sql ="SELECT letter_no, letter_lang, letter_title, letter_abstract, submission_date, revision_date, MATCH (letter_title, letter_abstract, letter_body) AGAINST (? IN NATURAL LANGUAGE MODE) AS letter_score FROM sevengates_letter WHERE MATCH (letter_title, letter_abstract, letter_body) AGAINST (? IN NATURAL LANGUAGE MODE) ORDER BY letter_score DESC";

2) ПОЛЬЗОВАТЕЛЬСКИЙ ПОИСКОВЫЙ ДВИГАТЕЛЬ :

См. По Локальный поиск / Информационные бюллетени по https://www.grammarcaptive.com/overview.html

3) ПОИСК ДОКУМЕНТА :

См. Регулярные обновления / Информационный бюллетень / Архивы / Японский на https://www.grammarcaptive.com/overview.html

КОММЕНТАРИЙ : Ни PHP, ниMySQL жалуется.Просто любой поиск по японскому слову, который нужно проанализировать, не возвращается.Например, слово 日本語 может быть найдено и найдено, но не требует извлечения.Не удается найти любое другое японское слово в бюллетене.

ЗАПРОС : Любые советы по устранению неполадок приветствуются.

Родди

Ответы [ 2 ]

0 голосов
/ 19 мая 2019

Оказывается, что должна быть закодирована вся таблица, а не только столбцы.Ну, по крайней мере, это было одно существенное отличие, которое я сделал, когда воссоздал таблицу.

Неважно, парсер не появляется в разделе таблицы myPhpAdmin, где парсеры, по-видимому, должны появляться.Возможно, это связано с тем, что анализатор отображается в операторе SHOW CREATE таблицы.В любом случае, это небольшой недостаток по сравнению с общей функциональностью парсера.

Roddy

0 голосов
/ 11 декабря 2018

Несколько вещей, которые вы можете проверить:

Работает ли Mecab в командной строке?

Вы должны быть в состоянии сделать что-то подобное, предполагая, что Linux-подобная система:

echo "日本語ですよ" | mecab

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

日本    名詞,固有名詞,地名,国,*,*,ニッポン,日本,日本,ニッポン,日本,ニッポン,固,*,*,*,*
語      名詞,普通名詞,一般,*,*,*,ゴ,語,語,ゴ,語,ゴ,漢,*,*,*,*
です    助動詞,*,*,*,助動詞-デス,終止形-一般,デス,です,です,デス,です,デス,和,*,*,*,*
よ      助詞,終助詞,*,*,*,*,ヨ,よ,よ,ヨ,よ,ヨ,和,*,*,*,*

На некоторых платформах mecab статически связан в MySQL, поэтому вам не нужноустановка системы, но документы указывают, что это не всегда так.

Правильны ли ваши настройки кодирования?

Набор символов по умолчанию для вашей таблицы - latin1, который не будет работать с текстом на японском языке.Я бы предложил использовать utf8, и вам нужно проверить, поддерживает ли это ваша установка mecab.

Надеюсь, это поможет.

...