Read paper about similarity Search

8B pages == 8Billion pages Title: Detecting Near-Duplicates for Web Crawling WWW 2007, Track: Data Mining. Session: Similarity Search Keywords: Hamming Distance, near-duplicate Problem: the problem of elimination of near-duplicate web documents in a generic crawl has not received attention. … 继续阅读

漫话匹配学习(Learning to match) 与Q&A

李航在2012年的一年共做了四篇关于匹配学习的报告,大致内容一致。 2012. 07 mmds_2012 @Stanford University Large Scale Machine Learning for Query Document Matching in Web Search 2012.08 sigir2012_tutorial Beyond Bag of Words Machine Learning for Query-Document Matching in Web Search 2012.08 yssnlp_2012 Learning to Match for Natural Language Processing … 继续阅读

关于Time的字符串,如何比较时间

从一个文本中提取出时间的字符串,分别为: 2012-06-09 23:08 2012-01-22 21:14 2012-01-01 23:12 2012-01-01 00:26 2012-01-01 05:08 2012-08-20 18:27 那么该如何比较这些时间的大小呢?最简单的方法想到的是,把字符串中的中英文字母和空格全部剔除掉,然后转化成int型数据进行大小判断: private static long timeConvert(String sendTimeStr) { //去掉中英文字符    String timeStr = sendTimeStr.replaceAll(“[\\p{Punct}\\s+\\pP]+”, “”);    long timeInt = Integer.parseInt(timeStr);    return timeInt;  } 但是此时运行出错,发现了一个新的问题就是,已经精确到分的时间转化int型时例201206092308已经超出了int型的范围。那么考虑调用Date库进行比对,那么需要把字符串都转化为Date型数据: import java.util.Date; import … 继续阅读

利用java迭代器Itetator遍历并删除HashMap中的元素问题

问题: 下面的代码试图利用HashMap的Iterator对象遍历该HashMap并删除满足条件的元素(比如超时的元素),但会抛出java.util.ConcurrentModificationException异常 public static void main(String[] args) { HashMap hs=new HashMap(); hs.put(“p1″, “1″); hs.put(“p2″, “1″); hs.put(“p3″, “1″); hs.put(“p4″, “1″); hs.put(“p5″, “1″); hs.put(“p6″, “1″); Iterator it=hs.keySet().iterator(); while(it.hasNext()) { String str=(String)it.next(); System.out.println(hs); //逻辑处理……… …………. hs.remove(str); } } 原因应该是hs.remove(str)后,it内容没变,并且it里的指针列表又重新排序,所以只要确保删除任一元素后,it保持同步更新即可: 解决方案一:删除任一元素后,it保持同步更新 ………… Iterator it=hs.keySet().iterator(); … 继续阅读

Java中HashMap遍历的两种方式效率不同

【原文】:http://www.javaweb.cc/language/java/032291.shtml 第一种: Map map = new HashMap(); Iterator iter = map.entrySet().iterator();  while (iter.hasNext()) {   Map.Entry entry = (Map.Entry) iter.next();   Object key = entry.getKey();   Object val = entry.getValue();   } 效率高,以后一定要使用此种方式! 第二种: Map map = new HashMap();   Iterator iter = map.keySet().iterator();   while … 继续阅读

利用词袋实现短文本相似度计算

输入两句文本: 我 在 中科院 自动化所 我 在 中科院 计算机所 可统计到词袋中[我, 我, 在, 在, 中科院, 中科院, 自动化所, 计算机所], 共8个词 然后统计两句文本中相同词的个数为2(我)+2(在)+2(中科院)=6 个词 那么计算相似概率为6/8=0.75 简易代码实现: import java.io.BufferedReader;    import java.io.FileReader;    import java.io.FileWriter;    import java.io.IOException;    import java.util.ArrayList;       public class similiarity_Matrix {        public static void main(String[] args) throws IOException {            int n = 0;            String readspk = “”; … 继续阅读

关于开源java中文分词器ansj

【遗留问题??】如果添加停用词典,据说要调用Lucene接口实现?有时间了去尝试一下 https://github.com/ansjsun/ansj_seg/wiki Ansj 是一个开源的 Java 中文分词工具,基于中科院的 ictclas 中文分词算法,比其他常用的开源分词工具(如mmseg4j)的分词准确率更高。 在线演示:http://ansj.sdapp.cn/demo/seg.jsp 官网地址:http://www.ansj.org/ Github地址:https://github.com/ansjsun/ansj_seg 目前实现了.中文分词. 中文姓名识别 . 用户自定义词典 可以应用到自然语言处理等方面,适用于对分词效果要求搞的各种项目. 如果你第一次下载只想测试测试效果可以调用这个简易接口 String str = “欢迎使用ansj_seg,(ansj中文分词)在这里如果你遇到什么问题都可以联系我.我一定尽我所能.帮助大家.ansj_seg更快,更准,更自由!” ; System.out.println(ToAnalysis.paser(str)); //new NatureRecognition(ToAnalysis.paser(str)).recogntion(); //进行词性标注 [欢迎/, 使用/, ansj/, _/, seg/, ,/, (/, ansj/, 中文/, 分词/, )/, 在/, 这里/, 如果/, … 继续阅读

中文短文本同音词识别一些陈旧参考文献锦集

【参考1】:汉语音字转换中同音字(词)的概率后处理 1992 1,该算法用字(词)相对于前后向拼音的条件概率代替常见的字(词)相对于前后向汉字的条件概率,极大地压缩了数据空间,提高了查找效率,使概率后处理的实时应用更趋于现实; 【参考2】:可分隔动词及其在拼音-汉字输入中同音词识别的应用 1992 2,可分隔动词及其在拼音-汉字输入中同音词识别的应用 例:睡觉 – 睡了觉,睡好觉,睡个觉,睡不着觉,睡过觉,睡过了觉 下棋 – 下了棋,下盘棋,下得了棋,下得好棋,下着棋 伸直 – 伸不直,伸得直,伸也伸不直 提高 – 提不高,提的高,提都提不高 那么其中这些,“着”、“了”、“过”、“过了” 都是一些的可分割动词。 【参考3】:统计语言模型及汉语音字转换的一些新结果 1992 3,音字转换由于汉字的多音字问题,显然要考虑上下文关系,一般而言,所给的上下文关系越多,音字正确转换的可能性就越大。现代汉语单字词的使用度约占一半,一般认仅在词级不可能取得满意的结果,而段落篇章又太大,因而多考虑句级上下文,即在一个句子或短语的范围内利用上下文约束来选择恰当的字或音。 从80年代起,就有两种成型的方法:1),基于最长词匹配,优点易于实现,缺点没有充分利用上下文约束,例,【参考4、5】;2),采用基于规则的句法语义分析,特点在有限领域是成功的,而对于开放域几乎是不可能的,这类系统一般速度慢,适应面窄,例,【参考6、7】 现在,基于统计方法建立的语言模型有可能更充分地利用上下文提供的约束。 【参考4】:普及型拼音-汉字变换系统设计 1990 【参考5】:多词组一次性拼音 1990[PDF] 【参考6】:汉语同音词汇的辨析 【参考7】:中文输入中语法分析技术的应用 【参考8】:歧义、系统歧义和语境 1993 自然语言理解分为真值理解和意义理解两方面。本文主要从计算机角度而不是从语言学角度来讨论歧义分析。 群众热爱人民的总理 — 追忆热爱人民的总理 【参考9】:基于2-Gram的索引存储模型设计 2007 最近做Solr项目用到的分词是自带的CJK分词采用的就是2-gram索引存储方式。普通的分词如庖丁解牛或计算所的分词方法虽然较好的解决了中文词的切分问题,但建立索引本身变的更加困难,系统维护难度高。2-gram索引既简单,存储效率高,又有较好的实用性: … 继续阅读