已有实体词的情况下,搜索词命名实体识别(NER)如何快速匹配

2022-03-29 14:11:57 +08:00
 jiezhi

刚接触搜索不久,在实体名词都有的情况下,如何对搜索词进行实体匹配呢(不考虑复杂场景,只把对应实体识别出来)?

看了一圈资料,OpenNLPCoreNLP似乎都要自己训练出模型来,有没有直接加载已有的实体词(就像 ES 那样)然后进行匹配的?

还是只能自己实现前缀词匹配?

925 次点击
所在节点    问与答
6 条回复
czfy
2022-03-29 18:02:36 +08:00
呃感觉我好像没太看懂

1. 具体场景就是搜索?类似在今日头条搜新闻这样的感觉?
2. 然后 “实体名词” 都有,是指长文本对应的实体词已经被识别出来?那不是你本身就有模型吗
3. 你又说不想自己训练模型,问题是搜索匹配本身其实就是一个简单规则,主要难点在识别长文本里的实体词,这个理论上要直接部署已有模型也可以,自己训练也可以的吧
jiezhi
2022-03-29 18:11:34 +08:00
@czfy #1 就是垂直电商,比如药品电商,那么药品品牌和药品名等于都有了,要识别出用户搜哪个品牌哪个药品(也有症状、疾病名称实体)

所以我指的实体是直接从数据库里用商品信息生产的,我看 opennlp 的自定义模型好像都是输入标注语句来训练的。而我想要的其实就是把用户搜索词里面的实体名称识别出来,应该不需要再训练了吧。
czfy
2022-03-29 18:18:40 +08:00
所以相当于你要做的是

1. 算法识别用户输入的搜索文本
2. 匹配算法识别的用户输入文本的实体词 与 商品已有的实体词
3. 输出搜索结果

那理论上你就先直接用现有模型看看效果咯,根据你的业务指标(用户搜索结果点击率 /跳转率 /下单率之类的)判断,如果符合业务要求就不用重新训练,效果不好那还是要重新训练
jiezhi
2022-03-29 18:18:47 +08:00
@czfy #1 我想要的类似这个 https://nlp.stanford.edu/software/regexner.html

指定实体名称和实体类型的输入数据,然后把输入里对应的都解析出来。但感觉用这些框架还要下载很大的数据模型,有点高射炮打蚊子的感觉。
czfy
2022-03-29 18:20:37 +08:00
如果你觉得这些太大,那就做个最简单的分词吧...
实体识别确实比分词要更复杂
lhfcws
2022-03-29 21:43:32 +08:00
最简单就是借助一些成熟的 nlp 库,把你的实体词(有的要带词性)导入进去,然后调用分词。把分词结果过滤 stopwords 后导入 es 。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/843623

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX