我有一堆存储在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
到目前为止,我尝试了两种方法。
1-将文本放入单词并使用SQL查询搜索匹配的行。
Ex:WHERE关键字IN('word1','word2'...)
这对于单个单词来说非常好。但它找不到东西 比如'Visual Basic'等两个单词。
2-使用全文索引并将文本作为自然语言提供给mysql。
Ex:MATCH关键字AGAINST('全文')
这也很好用,但它会返回'Zend'之类的东西 Framework'(因为全文索引将Zend和Framework视为单独的 单词,虽然它没有找到C ++(在单词分隔符的帐户上 在MySQL)。我不想为此目的进行自己的整理 仅
我发现的大多数stackoverflow文章都提出了方法1或2,但两者都不适用于我。关于什么是提取多词关键词的最佳方法的想法,同时还匹配数据库中的其他文本,如C ++等,以简单的方式具有标点符号?
谢谢!