Artificial intelligence 匹配算法';嘈杂';名字

Artificial intelligence 匹配算法';嘈杂';名字,artificial-intelligence,machine-learning,neural-network,Artificial Intelligence,Machine Learning,Neural Network,我有一个应用程序,它可以从网络上的不同来源获取足球比赛的结果。不同网站上的球队名称并不一致——例如,曼联可能在一个网站上被称为“曼联”,在第二个网站上被称为“曼联”,在第三个网站上被称为“曼联”。我需要将所有可能的派生词映射回一个名字(“曼联”),并对联盟中的20支球队(阿森纳、利物浦、曼城等)中的每一支重复这个过程。很明显,我不希望有任何糟糕的比赛[例如“曼城”被映射到“曼联”] 现在我为所有可能的组合指定正则表达式,例如“曼联”将是“曼彻斯特”(曼联)(曼联)(曼联))(fc);”;这对于一

我有一个应用程序,它可以从网络上的不同来源获取足球比赛的结果。不同网站上的球队名称并不一致——例如,曼联可能在一个网站上被称为“曼联”,在第二个网站上被称为“曼联”,在第三个网站上被称为“曼联”。我需要将所有可能的派生词映射回一个名字(“曼联”),并对联盟中的20支球队(阿森纳、利物浦、曼城等)中的每一支重复这个过程。很明显,我不希望有任何糟糕的比赛[例如“曼城”被映射到“曼联”]

现在我为所有可能的组合指定正则表达式,例如“曼联”将是“曼彻斯特”(曼联)(曼联)(曼联))(fc);”;这对于一些网站来说是不错的,但是越来越笨拙了。我正在寻找一种解决方案,可以避免指定这些正则表达式。例如,必须有一种方法来“得分”曼联,这样曼联在对“曼联”的比赛中得到高分,但在对“利物浦”的比赛中得到低分/零分(例如);我将根据所有可能的解决方案测试示例文本,并选择得分最高的一个

我的感觉是,解决方案可能类似于训练神经网络识别笔迹的经典示例[即,输入样本中存在一组固定的可能结果和一定程度的噪声]

有人有什么想法吗


谢谢。

您可以对所涉及的字符串使用一些相似性度量,并手动调整阈值。或者,也可以通过一些机器学习方法来训练阈值。哪个特定的相似性度量最有效取决于要匹配的字符串类型。在对字符串应用度量之前,您可能还需要对字符串进行预处理(例如,删除空格等干扰字符,规范化大小写,解析以前已知的常见缩写,…)


有关不同字符串相似性度量和Java库的全面概述,请参见

,您可能还需要对文本进行一些结构分析。词性分析器可能会提示哪些单词被用作专有名词,从而为您提供额外的线索,说明“mn-au”是由患有阅读障碍的手指匆忙键入的“Man-U”——这是任何正则表达式都无法理解的

能够“训练”软件也可能是最好的——根据您的发现添加特定的拼写


解析自然语言很难!祝你好运

看起来您正在屏幕上抓取相同的源

假设您的源代码在命名团队时是一致的,字符串转换将是最有效的解决方案

曼联-曼联


曼彻斯特联队->曼彻斯特联队

我已经用Python解决了这个问题,但没有任何复杂的人工智能。我只有一个文本文件,它将不同的变体映射到名称的规范形式。没有那么多的变化,一旦你列举了它们,它们几乎不会改变

我的文件如下所示:

man city=Manchester City
man united=Manchester United
man utd=Manchester United
manchester c=Manchester City
manchester utd=Manchester United
我将这些别名加载到dictionary对象中,然后当我有一个名称要映射时,我将其转换为小写(以避免不同大写的任何问题),然后在dictionary中查找它


如果您知道应该有多少个团队,您还可以添加一个检查,以警告您是否发现比预期更多的不同名称。

机器学习的问题在于,您必须编译一个足够大的数据集来进行训练,一个不同的数据集来进行测试,然后在世界上随意使用。你的帖子标题让我想到了这个算法,也许它可以用来帮助你减少神经网络的输入量。@sarnold:不总是这样:谢谢。这正是我要找的。禁止。您没有在此服务器上访问/people/GONEAWAY/stringmetrics.html的权限。请考虑邮寄多于链接。链接往往是脆弱的。试试看