假设我正在开发一个小型的Chrome扩展程序(因此我的大部分代码都是用JavaScript写的)。假设我有一组字符串,例如:
艺术家 – 歌曲名称
艺术家, 歌曲名称
歌曲名称 – 艺术家
无关信息 – 歌曲名称 – 艺术家
等等。
我只需要从字符串中提取歌曲名称,然而,我无法预料字符串可能出现的所有形式。
所以我的问题是提取这些信息的最佳方法是什么?是机器学习吗?如果是的话,代码可以用JavaScript编写吗,还是应该使用API?或者除了机器学习之外还有其他解决方案吗?
附注
我知道这个问题并不完全符合本网站可提问问题的指导方针,我知道这个问题有点开放和模糊,但我实在想不出其他地方可以问,所以
提前谢谢你。
回答:
可能有效的解决方案草图:
- 为所有可能的分隔字符(逗号、连字符等)制作正则表达式
- 使用这个正则表达式将你的字符串分成几部分
- 对于只有一部分的字符串,假设这是标题
- 对于两部分的字符串,假设较长的部分是标题,较短的部分是艺术家
- 制作艺术家和标题的列表(或者使用你的全局数据库以获得更好的结果)
- 检查你的标题中是否有与某个艺术家相同的情况 – 这可能是错误的
- 对于三部分或更多部分的字符串,根据你的列表识别艺术家
- 对于剩余的部分,假设索引较低的部分(更靠近字符串开头)是标题
- 最终,你可以通过Google API搜索,如果标记为标题的部分返回的结果比其他部分多
当然,这不会理想地工作,但我假设你并不期望它完美无缺。