关于h-index# Chemistry - 化学HQ2011-08-29 07:081 楼1.停止ipo2.专门严查股价操纵行为,尤其是在创业版3.制定鼓励长线持股的政策。4.调整股指期货的设计5.提高股指期货的保证金比例6.成立专门应对危机的专项基金7.降低印花税其实是意义大于实际作用的。
f*e2011-08-29 07:082 楼想看一看application status,一login进取,就是oracel peoplesoft "an error hasoccured"。已经试了好几次了。都是这样。
f*k2011-08-29 07:084 楼一个公司信息的数据库,想检查其中是否有同一公司的多条记录,因为同一公司名可能存在多种记法。比如ABC Tech, ABC Technology, ABC Technology, Inc, ABC, Inc等等。尽管这些表达有可能其实是不同公司,但更有可能是同一公司。因此想把它们找出来并返回给相关人员核查。这种核查不是针对某一家公司,而是数据库中所有公司。因此XYZ公司可能也存在这种问题。同时仅从字符串编辑距离上看,ABC vs XYZ比与ABC Technology还小,但ABC和XYZ不太可能是同一条记录,而和ABC Technology反而更可能是同一个公司。当然,也存在记录输入错误,将ABC Tech输成了ABC Teck从而存在两条记录,但实际是同一个公司。这种也希望能检查出来。所以有什么更好的办法使聚类的结果更准确么?谢谢
S*A2011-08-29 07:087 楼这个设计自然语言的理解,不是简单的问题,大概是需要一些智能的。我的思路大概如下。应该有不同的属性提供一个 scoring system。例如 Levenshtein distance 是一个 score.然后 A 是否是 B 的子集合也是一个 score.复杂一点的可以试图把词归类,在里面提取行业的相似程度。例如 food 和厨房比较接近。然后 Inc, company 之类的区分意义不大的词可以去。总之,可以用已有的数据库里已知公司不同的别名来帮助开发这样的多属性 scoring system,寻找容易区分公司是否相似的属性。然后就是对这个系列的属性 score 试图去 fit 一个总体是否同公司的输出。简单可以自己定些规则,例如某个 score> 临界就认为相似。复杂点的可以套用 machine learning的框架实现,可以用已知的数据 set 去训练这个是否的输出。这样比较精确微调提高匹配程度。等等Tec是同【在 f******k 的大作中提到】: 一个公司信息的数据库,想检查其中是否有同一公司的多条记录,因为同一公司名可能: 存在多种记法。比如ABC Tech, ABC Technology, ABC Technology, Inc, ABC, Inc等等: 。尽管这些表达有可能其实是不同公司,但更有可能是同一公司。因此想把它们找出来: 并返回给相关人员核查。这种核查不是针对某一家公司,而是数据库中所有公司。因此: XYZ公司可能也存在这种问题。同时仅从字符串编辑距离上看,ABC vs XYZ比与ABC Tec: hnology还小,但ABC和XYZ不太可能是同一条记录,而和ABC Technology反而更可能是同: 一个公司。: 当然,也存在记录输入错误,将ABC Tech输成了ABC Teck从而存在两条记录,但实际是: 同一个公司。这种也希望能检查出来。: 所以有什么更好的办法使聚类的结果更准确么?谢谢
z*e2011-08-29 07:0810 楼你这么说人家能看懂么?我也看得一知半解的,统计的水还是太深了不过我说一个相对容易点的哈建立tdm然后normalize下最后点乘计算cos夹角因为cos是递减函数所以值越大,夹角越小,越接近这个很容易算,不过有模型可以优化,需要人工介入比较好撒【在 S*A 的大作中提到】: 这个设计自然语言的理解,不是简单的问题,大概是: 需要一些智能的。: 我的思路大概如下。: 应该有不同的属性提供一个 scoring system。: 例如 Levenshtein distance 是一个 score.: 然后 A 是否是 B 的子集合也是一个 score.: 复杂一点的可以试图把词归类,在里面提取行业的相似程度。: 例如 food 和厨房比较接近。: 然后 Inc, company 之类的区分意义不大的词可以去。: 总之,可以用已有的数据库里已知公司不同的别名
b*g2011-08-29 07:0811 楼如果不是做nano的应该就是top 50 full professor level【在 h*****s 的大作中提到】: 刚查了下老板h-index 31, 做分析化学,电化学,化学计量,59岁。: 这个是什么档次啊?: 轻拍!
z*e2011-08-29 07:0815 楼对哦,忘记用轮子了,看来还是对轮子不够熟悉【在 g*****g 的大作中提到】: 都是没实践过的瞎出主义,上个 Lucene,Tokenized fuzzy search就搞定了。
i*i2011-08-29 07:0816 楼哪里用那么麻烦。parse:1. 提取公司类型 llc,s corp etc.2. 缩写-> 全称。 tech -> technology3. 剩下的是公司的名字。对于英文名字可以把单词按字典排序.做一个函数算单词的距离。然后跟库比对。肯定八九不离十。
i*i2011-08-29 07:0817 楼full text search 在这种情况下效果不一定好。lucene的stemmers在这里没有道理【在 g*****g 的大作中提到】: 都是没实践过的瞎出主义,上个 Lucene,Tokenized fuzzy search就搞定了。
g*g2011-08-29 07:0818 楼我们用来搜电影 title, 人名,跟这个 use case一模一样, 效果好不好你比我清楚?【在 i**i 的大作中提到】: full text search 在这种情况下效果不一定好。: lucene的stemmers在这里没有道理
b*s2011-08-29 07:0819 楼http://flamingo.ics.uci.edu/is this what u want?等等Tec是同【在 f******k 的大作中提到】: 一个公司信息的数据库,想检查其中是否有同一公司的多条记录,因为同一公司名可能: 存在多种记法。比如ABC Tech, ABC Technology, ABC Technology, Inc, ABC, Inc等等: 。尽管这些表达有可能其实是不同公司,但更有可能是同一公司。因此想把它们找出来: 并返回给相关人员核查。这种核查不是针对某一家公司,而是数据库中所有公司。因此: XYZ公司可能也存在这种问题。同时仅从字符串编辑距离上看,ABC vs XYZ比与ABC Tec: hnology还小,但ABC和XYZ不太可能是同一条记录,而和ABC Technology反而更可能是同: 一个公司。: 当然,也存在记录输入错误,将ABC Tech输成了ABC Teck从而存在两条记录,但实际是: 同一个公司。这种也希望能检查出来。: 所以有什么更好的办法使聚类的结果更准确么?谢谢
i*i2011-08-29 07:0820 楼好吧。那你能不能给科普一下netflix选的(或者自己做的)suggestion算法是什么?【在 g*****g 的大作中提到】: 我们用来搜电影 title, 人名,跟这个 use case一模一样, 效果好不好你比我清楚?
b*s2011-08-29 07:0821 楼人家讲的是模式识别,扯什么统计【在 z****e 的大作中提到】: 你这么说人家能看懂么?: 我也看得一知半解的,统计的水还是太深了: 不过我说一个相对容易点的哈: 建立tdm: 然后normalize下: 最后点乘计算cos夹角: 因为cos是递减函数: 所以值越大,夹角越小,越接近: 这个很容易算,不过有模型可以优化,需要人工介入比较好撒
g*g2011-08-29 07:0822 楼consumer faced的那个不是我做的,不敢说。我们内部有一些内容管理需要搜索,我老写的 API, 就是Elastic search 缺省的 tokenized term search效果就很好。楼主说的所有 case我都试过。想优化还有一堆的权制可以调。这是Apache的顶级轮子,让你写一年也赶不上。【在 i**i 的大作中提到】: 好吧。那你能不能给科普一下netflix选的(或者自己做的)suggestion算法是什么?
z*e2011-08-29 07:0824 楼不知道古德霸那个api怎么用,没怎么用过你这里面abc都是首词,所以可以加大第一个单词的权重找最相似的,比如第一个单词权重都是50%,如果第一个单词一样,剩下单词都不一样那么有50%相似度,你可以建立一个score或者weight来判断这样就不会导致abc和xy和abc和abc technology有所不同了找完了第一个之后再找类似的,abc不小心打成adc这样就接近了等等Tec是同【在 f******k 的大作中提到】: 一个公司信息的数据库,想检查其中是否有同一公司的多条记录,因为同一公司名可能: 存在多种记法。比如ABC Tech, ABC Technology, ABC Technology, Inc, ABC, Inc等等: 。尽管这些表达有可能其实是不同公司,但更有可能是同一公司。因此想把它们找出来: 并返回给相关人员核查。这种核查不是针对某一家公司,而是数据库中所有公司。因此: XYZ公司可能也存在这种问题。同时仅从字符串编辑距离上看,ABC vs XYZ比与ABC Tec: hnology还小,但ABC和XYZ不太可能是同一条记录,而和ABC Technology反而更可能是同: 一个公司。: 当然,也存在记录输入错误,将ABC Tech输成了ABC Teck从而存在两条记录,但实际是: 同一个公司。这种也希望能检查出来。: 所以有什么更好的办法使聚类的结果更准确么?谢谢
z*e2011-08-29 07:0826 楼Levenshtein distance是string matrices他这里面貌似还有terms matrices的东西【在 g*****g 的大作中提到】: Lucene的fuzzy search是基于Levenshtein distance的。加上tokenize调一下权重足以。
z*e2011-08-29 07:0827 楼还有一个就是过滤掉频繁出现的关键字比如technolog, company, co.jp, com这些直接全部无视都没啥问题,不管怎样,这些频繁出现的字眼权重一定要降低不过如果能有轮子搞定,那还是直接上轮子了
d*r2011-08-29 07:0828 楼大牛能否比较下 Lucene&Solr VS ElasticSearch 分别的优缺点和适用范围?【在 g*****g 的大作中提到】: consumer faced的那个不是我做的,不敢说。我们内部有一些内容管理需要搜索,我老: 写的 API, 就是: Elastic search 缺省的 tokenized term search效果就很好。楼主说的所有 case我都: 试过。想优化还有一堆的权制可以调。这是Apache的顶级轮子,让你写一年也赶不上。
z*e2011-08-29 07:0829 楼ElasticSearch不是基于lucence的吗?【在 d*******r 的大作中提到】: 大牛能否比较下 Lucene&Solr VS ElasticSearch 分别的优缺点和适用范围?
g*g2011-08-29 07:0830 楼Solr/ES都是基于Lucene的,Lucene是一个搜索的库,Solr/ES是之上提供了应用级的支持。个人觉得ES比较先进,flexible schema, good scalability.【在 d*******r 的大作中提到】: 大牛能否比较下 Lucene&Solr VS ElasticSearch 分别的优缺点和适用范围?
z*e2011-08-29 07:0831 楼酱紫啊,先试试用看了thx【在 g*****g 的大作中提到】: Solr/ES都是基于Lucene的,Lucene是一个搜索的库,Solr/ES是之上提供了应用级的支: 持。: 个人觉得ES比较先进,flexible schema, good scalability.
i*i2011-08-29 07:0832 楼如虫子所说,这种情况下用轮子是最简单的。 这种要求不高的情况一般的算法都足够了。我以前用过n-gram也不错。用lunrjs做了一个demo.http://plnkr.co/edit/9btihuQDQNGL8Fci9dx8?p=preview{name:"Oak Hill Capital Partners"},{name:"Oaktree Capital Management"},{name:"Oberto Sausage Company"},{name:"Oberweis Dairy"},{name:"Occidental Petroleum"},{name:"Oceaneering International"},{name:"Ocean Spray"},{name:"OCZ Technology"},{name:"Odwalla Inc."},{name:"O.F. Mossberg & Sons"},{name:"Office Depot"},{name:"OfficeMax"},{name:"Olan Mills"},{name:"Old Dominion Freight Line"},{name:"Olin Corporation"},{name:"Olympic Steel"},{name:"Omaha Steaks"},{name:"Omni Air International"},{name:"The Omni Group"},{name:"Omnicare"},{name:"Omnicom Group"},{name:"ON Semiconductor"},{name:"ONEOK"},{name:"Onvia"},{name:"Open Interface North America"},{name:"OpenTable"},{name:"Opower"},{name:"Oracle Corporation"},{name:"Oracle Financial Services Software"},{name:"Orbital Sciences Corporation"},{name:"Oreck Corporation"},{name:"O'Reilly Auto Parts"},{name:"O'Reilly Media"},{name:"Oshkosh Corporation"},{name:"OSI Restaurant Partners"},{name:"Overcast Media"},{name:"Overstock.com, Inc."},{name:"Owens Corning"},{name:"Owens-Illinois"},{name:"ABC Technology, LLC"}
S*A2011-08-29 07:0833 楼虽然例子里面用 sub string Levenshtein distance 就可以匹配上了。但是 LZ 都说了,Levenshtein distance 不一定够用。所以 Lucene的fuzzy search 不见得一定够用。我可以举个例子,因为我对花花草草比较熟悉:John Deere Landscapes 和 Lesco, Inc 没有相同的 sub string,但是这是同一个公司。因为 branding 的需要,这种情况很常见的。保洁,飘柔等等。我就是提些思路如何引入 Levenshtein distance 以外的衡量指标,说的不清楚还请包含。当然如果可以简化成用 Sub String Levenshtein distance 那就简单多了,上轮子也可以。
d*r2011-08-29 07:0834 楼多谢多谢!过来人一句话,省很多自己研究的时间。【在 g*****g 的大作中提到】: Solr/ES都是基于Lucene的,Lucene是一个搜索的库,Solr/ES是之上提供了应用级的支: 持。: 个人觉得ES比较先进,flexible schema, good scalability.
x*62011-08-29 07:0836 楼有木大牛比较下es和solr?我现在用solr的理由就是solr admin console好用,貌似es没有现成的admin console?另外spring-data-solr是一个mainproject,可以用repository什么的比较方便。
g*g2011-08-29 07:0837 楼有 3rd party plugin, 开源的。es【在 x*******6 的大作中提到】: 有木大牛比较下es和solr?我现在用solr的理由就是solr admin console好用,貌似es: 没有现成的admin console?另外spring-data-solr是一个mainproject,可以用: repository什么的比较方便。
g*g2011-08-29 07:0838 楼不是说你说的是错的,而是说你指点的不 practical. 需要写轮子的人必然很熟悉轮子。剩余的人不需要写轮子。先看够不够用,再补充。Lucene fuzzy search给你返回一个 score,要加权其他算法,要 plugin同义词都很容易。同义词的支持都是内建的。【在 S*A 的大作中提到】: 虽然例子里面用 sub string Levenshtein distance 就可以匹配上了。: 但是 LZ 都说了,Levenshtein distance 不一定够用。: 所以 Lucene的fuzzy search 不见得一定够用。: 我可以举个例子,因为我对花花草草比较熟悉:: John Deere Landscapes 和 Lesco, Inc 没有相同的 sub string,: 但是这是同一个公司。因为 branding 的需要,这种情况很常见的。: 保洁,飘柔等等。: 我就是提些思路如何引入 Levenshtein distance 以外的衡量指标,: 说的不清楚还请包含。: 当然如果可以简化成用 Sub String Levenshtein distance 那
G*Y2011-08-29 07:0839 楼你这个问题的定义,太vague等你把问题定义清楚,solution,就显然了。等等Tec是同【在 f******k 的大作中提到】: 一个公司信息的数据库,想检查其中是否有同一公司的多条记录,因为同一公司名可能: 存在多种记法。比如ABC Tech, ABC Technology, ABC Technology, Inc, ABC, Inc等等: 。尽管这些表达有可能其实是不同公司,但更有可能是同一公司。因此想把它们找出来: 并返回给相关人员核查。这种核查不是针对某一家公司,而是数据库中所有公司。因此: XYZ公司可能也存在这种问题。同时仅从字符串编辑距离上看,ABC vs XYZ比与ABC Tec: hnology还小,但ABC和XYZ不太可能是同一条记录,而和ABC Technology反而更可能是同: 一个公司。: 当然,也存在记录输入错误,将ABC Tech输成了ABC Teck从而存在两条记录,但实际是: 同一个公司。这种也希望能检查出来。: 所以有什么更好的办法使聚类的结果更准确么?谢谢
N*K2011-08-29 07:0841 楼你这猴子搬弄工具 只曾笑料【在 z****e 的大作中提到】: 你这么说人家能看懂么?: 我也看得一知半解的,统计的水还是太深了: 不过我说一个相对容易点的哈: 建立tdm: 然后normalize下: 最后点乘计算cos夹角: 因为cos是递减函数: 所以值越大,夹角越小,越接近: 这个很容易算,不过有模型可以优化,需要人工介入比较好撒
H*S2011-08-29 07:0843 楼Lucene 基本上是吧document看作bag of words,所以如果希望abc是在document的最前面,best bet是用Term payload.关于第二个问题,可以去看看Lucene提供的Porter stemmer
f*k2011-08-29 07:0844 楼多谢各位的热烈,专业的建议。后来用的办法是用两套打分规则,取高的。第一套是先将The,Inc,Ltd这种无意义的词删除,将Technology,Management这种常见词替成1,2个字母的缩写。然后计算编辑距离,距离越短,分数越高,认为相似度越高;第二套是原始公司名全按单词拆开,所有公司名的组成单词汇总,计算出现次数;包含仅出现一次单词的公司名,被认为很有可能是unique的,给0分;包含只出现过两次单词的公司名被认为很有可能是一对duplicates,给一个高分,其他次数给分递减。先用1万多的数据跑了一下,发现编辑距离的准确度高些,第二个方法基本不太准;由于客户多是金融公司,大家起名都非常相似,比如ABC capital,ABC CapitalManagement这种差异大部分情况其实是不同公司;个别的甚至仅ltd和lnc的差异就是两家公司。所以false positive比较大。由于我们的数据是从专业的第三方买来了,所以拼写错误的情况极为罕见,1万多里目前就发现1,2个。而真正的重复对绝大部分集中在处理过的公司名的编辑距离是0或1上。这些重复对在原始名上的差异主要是一个是全称,一个少了llc,inc,group这种后缀。也有同一家公司的不同分支,比如ABC Private Equity,ABC ventures也被以很低的编辑距离找出来了。我不是学和专门做这方面的,只是公司想清理下客户数据,提高数据质量。大家提到的好多专业内容不太懂,我会再去研究下,改进目前方法的质量。
S*A2011-08-29 07:0845 楼嗯,这个和我的预想比较接近,就是不能简单依赖通用的text search, 需要加入 domain specific 的 knowledge。关键在于,你需要塞选过数据之后,得出你现在公司重复的不同原因。你现在的总结是,有些是简单拼写错误,(其少数)。有些是漏掉些不关键的字,还有是公司不同的不同叫法。所以比较常见的做法是针对不同的原因给不同的评分标准,然后把这些不同的评分结果通过算法和数据训练合并起来。公司的不同叫法和子公司这个必须要利用一些名字以外的信息区分开来。你的例子里面有矛盾的两个方面,例如多个 management 是个不同公司,差个 ventures 是同一个公司等等。这些最好有外部信息来帮助判别。例如你如果可以找出一个公司所有的分公司的信息就会有帮助。
m*n2011-08-29 07:0846 楼赞。我们组正在用ES【在 g*****g 的大作中提到】: Solr/ES都是基于Lucene的,Lucene是一个搜索的库,Solr/ES是之上提供了应用级的支: 持。: 个人觉得ES比较先进,flexible schema, good scalability.