Jus*_*tin 11 artificial-intelligence machine-learning neural-network
我有一个应用程序,它从网上的不同来源抓取足球结果.球队名称在不同的网站上并不一致 - 例如曼联在一个网站上可能被称为"曼联",第二个是"曼联",第三个是"曼联足球俱乐部".我需要将所有可能的派生映射回一个名称('曼联'),并为联盟中的20支球队(阿森纳,利物浦,曼城等)重复这一过程.显然我不想要任何糟糕的比赛[例如'曼城'被映射到'曼联'].
现在我为所有可能的组合指定正则表达式 - 例如'曼联'将是'man(chester)?(u |(utd)|(联合))(fc)?'; 对于几个网站来说这很好,但是越来越笨重.我正在寻找一种避免必须指定这些正则表达式的解决方案.例如,必须有一种方法可以让"曼联"得分,所以它对"曼联"得分较高,但对"利物浦"的得分较低/为零[例如]; 我会根据所有可能的解决方案测试示例文本,然后选择得分最高的那个.
我的感觉是,解决方案可能类似于经过训练来识别手写的神经网络的经典示例[即,存在一组固定的可能结果,并且输入样本中存在一定程度的噪声]
有人有主意吗 ?
谢谢.
您可以对所涉及的字符串使用一些相似性度量以及手动调整的阈值。或者,阈值也可以通过某种机器学习方法来训练。哪种特定的相似性度量最有效取决于您想要匹配的字符串类型。您可能还需要在对字符串应用度量之前对字符串进行预处理(即删除空格等噪音字符、标准化大写、解析常见的先前已知缩写,...)
有关不同字符串相似性指标和 Java 库的全面概述,请参阅http://www.dcs.shef.ac.uk/~sam/stringmetrics.html