php - 使用许多不同的查询搜索文档

标签 php mysql

我正在编写一个脚本,它将一篇新闻文章作为输入,并返回文章中提到的所有上市公司及其相应代码的列表。大约有 6,500 个独特的公司名称可能被提及。

我的第一个想法是使用正则表达式从文章中提取所有可能是公司名称的名称。公司名称可能非常不同,但名称中的每个单词几乎总是以大写字母开头,因此我认为这可能只适用于少数误报(可能是个人与公司共享名称的情况)。

下一个问题是将可能的公司名称与所有公司和符号的列表进行比较。我应该如何存储列表?作为每个条目都有公司和符号字段的表格?看起来这是使用公司映射到符号的 HashMap 的理想场所。使用上述映射序列化数组并在我的脚本开头反序列化它是否比 mysql 解决方案更快,该脚本在文章中查找名称?

最佳答案

My first thought was using a regular expression to pull out of the article all names that could possibly be company names. Company names can be pretty different, but almost always every word in the name starts with a capital letter, so I think this could work with only a few false positives (situations where an individual shares a name with a company, probably).

我们为标签或名称推荐使用 #@ 等前缀是有原因的,它有助于创建模式匹配。如果允许这种规模的“误报”,我认为您将搬起石头砸自己的脚。

我会遵循标准的“股票代码”文章格式,包括公司名称或股票代码格式引用,例如 American Company Co. (ACCO),这样您就可以简单地查找 (*) 引用。

除了坚持一种格式,您将很难获得快速、相关和准确的结果。

复杂的解决方案是服务器端处理误报,加载完整的姓名列表并处理匹配项,使用一些带有评论警报的警报系统,但当一个简单的格式调整可以进行时,这就是太多的开销很长的路)

关于php - 使用许多不同的查询搜索文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8807154/

相关文章:

php - 从我的表单创建缩略图时出错

php - 获取合并的两个表(不显示想要的结果)

php - 如何分离sql查询的结果?

mysql - MySql "FROM"子句如何处理多个表名?

php - PHP 中的 DOMDocument 和 dom 模块

php - 如何在不考虑 PDO 限制的情况下获取找到的总行数?

php - 循环中的 SQL 更新(mysql、PHP)

sql - 选择每月

php - joomla mysql 日期数学逻辑

PHP 执行不返回任何错误,但数据库中未添加任何行