现在一个需求是当用户输入他的公司名称时,判断这个公司的关键名称(如深圳市腾讯计算机系统有限公司,北京市百度信息技术有限公司的核心关键名就是腾讯,百度);然后到他们给的表里面匹配是否有包含这个关键名称的公司(他们的表都是官方全称,但是怕用户输入的不完全一致)
于是我个人的想法是计算两个词的相似度来解决,但是对于这么多的数据感觉如果拆词一个一个计算会不会很低效率,或者这种需求还能用别的方法解决吗?
![]() | 1 jugelizi 2016-01-18 20:59:23 +08:00 先分词 |
2 billlee 2016-01-18 21:28:26 +08:00 如果预先有关键名称的列表,那用 multiple string search 算法就可以了吧? |
![]() | 3 chlx 2016-01-18 21:30:36 +08:00 keyword: entity recognition |
![]() | 4 jsq2627 2016-01-18 22:00:14 +08:00 ![]() |
![]() | 5 zenghsh3 2016-01-18 22:32:52 +08:00 可以尝试类似 TF-IDF 的思想,找出这个公司名和其他公司名相比的独特之处 |
![]() | 7 v2wtf 2016-01-18 23:13:47 +08:00 先分词,然后把“科技、信息、公司”等等常见词组过滤掉,剩下的基本就是了 |
![]() | 8 rock_cloud 2016-01-18 23:19:12 +08:00 借助搜索引擎?查股票代码或者直接搜索公司全称的简称?或者搜索公司名称+主页,然后看域名? |
9 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 具有很好的类别区分能力。 -- “腾讯”和“百度”肯定比起什么“公司”,“有限” 这类词语出现得少……然后,就是这样了。 |
![]() | 10 EXDestroyer OP @jsq2627 原来有这种服务,正是我想要的! |
![]() | 11 ivvei 2016-01-19 15:05:14 +08:00 求测试类似这样的: 国际商业机器股份有限公司 巴伐利亚汽车制造厂 |
![]() | 12 EXDestroyer OP |
![]() | 13 ivvei 2016-01-20 13:14:06 +08:00 @EXDestroyer 嗯然后关键名是……? |
![]() | 14 EXDestroyer OP |