Можно ли найти повторяющиеся шаблоны в тексте, хранящемся в MySQL?

0

Можно ли найти повторяющиеся шаблоны в тексте?

Моя таблица выглядит так:

CREATE TABLE `textanalysis` (
    `ID` int(11) NOT NULL AUTO_INCREMENT,
    `abstract` text,
    UNIQUE KEY `ID` (`ID`),
    FULLTEXT KEY `abstract` (`abstract`)
) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=latin1;

Я хотел бы найти слова или группу слов в тексте, а затем сделать статистику.

Теги:
statistics
full-text-search

2 ответа

1
Лучший ответ

Вот некоторые трюки (не очень оптимизированные)

используйте "яблоко" , например,
длина для яблока составляет 5

SELECT
  (LENGTH(abstract)-LENGTH(REPLACE(LOWER(abstract), 'apple', '')))/5 
  AS occurrences
FROM
  textanalysis
WHERE
  MATCH (abstract) AGAINST ('+apple' IN BOOLEAN MODE);

Что происходит, это заменить яблоко (сделать длину абстрактной короче),
и вы сравниваете исходную длину, чтобы вывести число вхождений.

  • 0
    идеальный! вот что мне нужно ... спасибо!
0

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

select count(id) as total_word, abstract from textanalysis group by abstract;
  • 0
    аннотация состоит из ВСЕХ слов

Ещё вопросы

Сообщество Overcoder
Наверх
Меню