如何高效的提取一个公司名全称中的关键名(如腾讯)?

2016-01-18 20:50:39 +08:00
 EXDestroyer

现在一个需求是当用户输入他的公司名称时,判断这个公司的关键名称(如深圳市腾讯计算机系统有限公司,北京市百度信息技术有限公司的核心关键名就是腾讯百度);然后到他们给的表里面匹配是否有包含这个关键名称的公司(他们的表都是官方全称,但是怕用户输入的不完全一致)

于是我个人的想法是计算两个词的相似度来解决,但是对于这么多的数据感觉如果拆词一个一个计算会不会很低效率,或者这种需求还能用别的方法解决吗?

5132 次点击
所在节点    JavaScript
14 条回复
jugelizi
2016-01-18 20:59:23 +08:00
先分词
billlee
2016-01-18 21:28:26 +08:00
如果预先有关键名称的列表,那用 multiple string search 算法就可以了吧?
chlx
2016-01-18 21:30:36 +08:00
keyword: entity recognition
jsq2627
2016-01-18 22:00:14 +08:00
zenghsh3
2016-01-18 22:32:52 +08:00
可以尝试类似 TF-IDF 的思想,找出这个公司名和其他公司名相比的独特之处
zenghsh3
2016-01-18 23:09:32 +08:00
@zenghsh3 严格来说是 IDF
v2wtf
2016-01-18 23:13:47 +08:00
先分词,然后把“科技、信息、公司”等等常见词组过滤掉,剩下的基本就是了
rock_cloud
2016-01-18 23:19:12 +08:00
借助搜索引擎?查股票代码或者直接搜索公司全称的简称?或者搜索公司名称+主页,然后看域名?
noli
2016-01-18 23:48:13 +08:00
https://zh.wikipedia.org/wiki/TF-IDF

以下摘自 维基百科:

TF-IDF 的主要思想是:如果某个词或短语在一篇文章中出现的频率 TF 高,并且在其他文章中很少出现,则认为此词或者短语具有很好的类别区分能力,适合用来分类。 TF-IDF 实际上是: TF * IDF , TF 词频( Term Frequency ), IDF 逆向文件频率( Inverse Document Frequency )。 TF 表示词条在文档 d 中出现的频率。 IDF 的主要思想是:如果包含词条 t 的文档越少,也就是 n 越小, IDF 越大,则说明词条 t 具有很好的类别区分能力。

--

“腾讯”和“百度”肯定比起什么“公司”,“有限” 这类词语出现得少……然后,就是这样了。
EXDestroyer
2016-01-19 09:47:42 +08:00
@jsq2627 原来有这种服务,正是我想要的!
ivvei
2016-01-19 15:05:14 +08:00
求测试类似这样的:
国际商业机器股份有限公司
巴伐利亚汽车制造厂
EXDestroyer
2016-01-19 22:41:38 +08:00
@ivvei 结果:
巴伐利亚汽车制造厂
地名:巴伐利亚
名词:汽车、制造厂


国际商业机器股份有限公司
名词:国际 、商业、 机器、 股份、 有限公司
ivvei
2016-01-20 13:14:06 +08:00
@EXDestroyer 嗯然后关键名是……?
EXDestroyer
2016-01-20 15:00:03 +08:00
你这两个都没有。。
关键名它会显示为 专有名词

http://bosonnlp.com/demo

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

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

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

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

© 2021 V2EX