Извлечение ключевых слов с использованием базы данных ключевых слов в MySQL

У меня есть куча ключевых слов, хранящихся в MySQL. Для простоты предположим, что в базе данных мало ключевых слов.

Допустим, они хранят таблицу примерно так:

CREATE TABLE `keywords` (
`keyword` varchar(255) NOT NULL,
UNIQUE KEY `keyword` (`keyword`),
FULLTEXT KEY `keyword_ftx` (`keyword`)
)

и на данный момент есть несколько ключевых слов:

«C», «C ++», «C #», «Zend Framework», «Visual Basic»

Теперь я хочу извлечь эти ключевые слова из текста. Такие как:

Вот некоторые языки программирования и платформы, такие как C ++,
Visual Basic и Zend Optimizer делают кое-что.

Очевидные ключевые слова, которые должны быть найдены из вышеприведенного текста с использованием примеров записей базы данных ключевых слов, должны быть:

C ++, Visual Basic

Я попробовал 2 подхода до сих пор.

1- Поместите текст в слова и используйте SQL-запрос для поиска подходящих строк.

Пример: ГДЕ ключевое слово IN (‘word1’, ‘word2’ …)

Это прекрасно работает для отдельных слов. Однако он не может найти вещи
как «Visual Basic» и т. д., которые являются 2 словами.

2- Используйте полнотекстовые индексы и передайте текст как естественный язык для MySQL.

Пример: МАТЧ Ключевое слово ПРОТИВ («весь текст»)

Это также работает довольно хорошо, но возвращает такие вещи, как ‘Zend
Framework ‘(так как полнотекстовый индекс принимает Zend и Framework отдельно
слова, пока он не находит C ++ (на счет разделителей слов
в MySQL). Я не хочу делать для этого собственную сортировку
только.

В большинстве статей, посвященных stackoverflow, я предлагаю метод 1 или 2, но ни одна из них не работает для меня. Любые идеи о том, что будет лучшим методом для извлечения ключевых слов из нескольких слов, а также сопоставления других текстов в базе данных, таких как C ++ и т. Д., Который имеет символы пунктуации в простой форме?

Спасибо!

3

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]