我正在尝试创建一个服务,用户将在其中输入一些文本数据,例如博客文章或类似的东西,我的服务将替换其文本中的一些“特殊单词”以获取链接。例如:
博文:
"...Pink Floyd were an English rock band that achieved international success with their progressive and psychedelic rock music..."
输出将类似于:
"...<a href="http://www.xxx.com?q=pink%20floyd">Pink Floyd</a> were an English <a href="http://www.xxx.com?q=rock%20band">rock band</a> that achieved international success with their progressive and psychedelic rock <a href="http://www.xxx.com?q=music">music<a/>..."
像维基百科一样的东西!
通用算法似乎很简单:
- 从文本中删除特殊字符。
- 剥离标签。
- 将整个文本小写。
- 删除停用词。
- 查询数据库中留下的单词。
- 获取原文并替换数据库中匹配的单词。
但问题是,我正在处理我的数据库中大约 100 万个单词。我为此使用 PHP 和 MySQL,据我所知 PHP 可能不是文本处理的最佳工具。
我担心性能,这取决于流量和请求数量,这个算法可能非常慢......
我试图找到另一种工具或方法来处理这个问题,我发现了很多东西,但我认为这些都不是适合这项工作的工具。我找到了mysql全文搜索,搜索lucene,sphinx,solr。如果我错了,请纠正我,但我认为它们不是这种搜索的正确工具。
有人可以建议我如何正确处理这个问题。
需要考虑的事项:
- 不幸的是,该文本是葡萄牙语“pt-br”,我认为这将是一个问题。
- 它需要得到完整的术语,在上面的例子中,它必须取“摇滚乐队”而不是分成“摇滚”和“乐队”。
- 我对其他编程语言没有更深入的了解,但如果是这种情况,我也对其他技术持开放态度!