NLP
文章平均质量分 66
寂寞灵魂
这个作者很懒,什么都没留下…
展开
-
中文词语自动纠错_编辑距离
idea from here这是一篇使用编辑距离对英文词语就行简单纠错的文章。code:import refrom collections import Counterdef words(text): return re.findall(r'\w+', text.lower())WORDS = Counter(words(open('big.txt').read()))def P(word, N=原创 2016-12-31 20:31:06 · 6149 阅读 · 6 评论 -
《TextRank: Bringing Order into Texts》
摘要TextRank是一个图排序模型,还是一个非监督方法。可用于关键字提取和短语提取。TextRank模型TextRank基于全图,递归获取全局信息,来决定每个顶点的重要性。其中,d是阻尼系数,通常取0.85。(论文Brin and Page,1998)。TextRank算法运行结束后,每个顶点的最终取值与初始值得选择是无关的。初始值得选择只会影响算法迭代到收敛的次数。原创 2016-03-24 22:10:52 · 2769 阅读 · 1 评论 -
opennlp的使用
import java.io.*;import opennlp.tools.sentdetect.SentenceDetectorME;import opennlp.tools.sentdetect.SentenceModel;import opennlp.tools.tokenize.Tokenizer;import opennlp.tools.tokenize.TokenizerME转载 2016-04-06 16:55:05 · 1633 阅读 · 0 评论 -
感悟
今天看到微软亚洲研究院的分词软件。http://research.microsoft.com/en-us/downloads/7a2bb7ee-35e6-40d7-a3f1-0b743a56b424/default.aspx。实验了一下:王总和小丽结婚了。长春市长春药店。李建平等领导参加了会议。工信处女部长。欧阳蓉蓉不喜欢慕容复,慕容复只想着杀了司马迁。结果:王原创 2016-04-02 18:52:18 · 359 阅读 · 0 评论 -
crf简介
Crf模型1. 定义一阶(只考虑y前面的一个)线性条件随机场:相比于最大熵模型的输入x和输出y,crf模型的输入输出都是序列化以后的矢量,是对最大熵模型的序列扩展。相比于最大熵模型的另外一个不同是,crf多出了一个维度j(j表示序列x的位置),即任意一个输出yi,都跟所有的输入x有关。经过变换,crf概率模型可以转化为:先转载 2016-02-22 10:25:52 · 1021 阅读 · 0 评论 -
文本关键词提取算法总结
1.TF-IDF昨天给大家演示简单的文本聚类,但要给每个聚类再提取一两个关键词用于表示该聚类。我们还是用TFIDF算法来做,因为这是比较简单的提取特征算法,不过这里的TF是指某词在本聚类内所有文章的词频,而不是本文章内出现的次数,IDF还是在所有文章里出现的倒文档频率。原理:1、先给本聚类内的所有文档进行分词,然后用一个字典保存每个词出现的次数2、遍历每个词,得到每个词在所有文档里转载 2016-03-29 20:31:40 · 9164 阅读 · 0 评论 -
Wu-Manber字符串多模式匹配
Wu-Manber算法采用跳跃不可能匹配字符和hash散列的方法,加速匹配的进行。该方法需要对所有模式进行预处理,构建SHIFT,HASH和PREFIX这3个表。SHIFT表同Boyer-Moore算法里的转移表,用来存储字符集中所有块字符在文本中出现时的转移距离;HASH表用来存储匹配窗口内尾块字符散列值相同的模式串;PREFIX表用来存储匹配窗口内首块字符散列值相同的模式串。在对模式串进行匹配原创 2016-03-16 21:13:06 · 831 阅读 · 0 评论 -
Aho-Corasick暂存第二篇
简介AC(Aho-Corasick)算法是一个经典的多模式串匹配算法,它借鉴了KMP算法的思想,可以由有限状态机(Finite State Automata:FSA)来表示。AC算法的基本原理是:先根据多模式串建立一个有限状态自动机FSA,在进行模式匹配时,设当前状态为Scur,输入串中的当前符号为C,运行FSA,试图得到下一状态Snext。如果Snext无效,即发生失配,则根据规转载 2016-03-02 15:03:57 · 453 阅读 · 0 评论 -
Aho-Corasick
1、概述Aho-Corasick自动机算法(简称AC自动机)1975年产生于贝尔实验室。该算法应用有限自动机巧妙地将字符比较转化为了状态转移。此算法有两个特点,一个是扫描文本时完全不需要回溯,另一个是时间复杂度为O(n),时间复杂度与关键字的数目和长度无关。好了,我们先看下最原始的多模式匹配算法:主串T,n=strlen(T)。模式串Pi mi = strlen(p转载 2016-03-02 15:01:28 · 461 阅读 · 0 评论 -
HMM Part-of-Speech Tagging
HMM Part-of-Speech TaggingA HMM is like this:Q=q1q2....qNA set of N statusA=a1a2...an1...annA transition probability matrix A, each aij representing the probability原创 2015-12-09 16:49:49 · 1026 阅读 · 0 评论 -
Boyer-Moore算法
上一篇文章,我介绍了KMP算法。但是,它并不是效率最高的算法,实际采用并不多。各种文本编辑器的"查找"功能(Ctrl+F),大多采用Boyer-Moore算法。Boyer-Moore算法不仅效率高,而且构思巧妙,容易理解。1977年,德克萨斯大学的Robert S. Boyer教授和J Strother Moore教授发明了这种算法。下面,我根据Moore教授自己的转载 2016-03-15 14:16:41 · 427 阅读 · 0 评论 -
文本分类与聚类(text categorization and clustering)
1. 概述广义的分类(classification或者categorization)有两种含义:一种含义是有指导的学习(supervised learning)过程,另一种是无指导的学习(unsupervised learning)过程。通常前者称为分类,后者称为聚类(clustering),后文中提到的分类都是指有指导的学习过程。给定分类体系,将文本集中的每个文本分到某个或者某几转载 2016-03-27 15:11:42 · 14374 阅读 · 2 评论 -
《A Tutorial on Automated Text Categorisation》NOTE
文档分类可以被看做是一个把{0, 1}中的值分配给决策矩阵的任务。以种类为核心的分类方法(category-pivotedcategorisation CPC)和以文档为核心(document-pivotedcategorisatiion DPC)的分类方法。CPC比DPC用的更多。文档分类的应用:1. 信息获取中的自动索引2. 文档管理3. 文档过滤原创 2016-04-13 17:08:10 · 1608 阅读 · 0 评论 -
《Thumbs up? Sentiment Classification using Machine Learning Techniques》笔记
这篇论文早就读过,现在重读一遍。 这是一篇2002年的论文,它的结论如下:算法方面: SVM比最大熵和朴素贝叶斯好特征方面: Bnigram并不比Unigram好 特征的presence比frequency好 词性影响不大 词的位置影响不大读完。原创 2016-11-26 16:09:07 · 2571 阅读 · 0 评论 -
自动纠错
a summary for https://medium.com/@sarthfrey/https-medium-com-prcobol-the-anatomy-of-autocorrect-9671cecad4b1#.gthtpsfo9pre knowledge: 1、编辑距离 2、P(right|error)=P(error|right)∗P(right)P(error)P(righ原创 2016-12-08 15:58:45 · 508 阅读 · 0 评论 -
维基百科简体中文语料的获取
维基百科简体中文语料的获取 2013 年 4 月 4 日 BY LICSTAR·39条评论 最近做实验需要较大规模的中文语料,很自然的就想到使用维基百科的中文数据。 使用维基百科做训练语料有很多好处:维基百科资源获取非常方便,有 Wiki Dump 可以直接下载,所有的最新备份都在里面。最近的一次备份是3月底,也就是5天前。相比之下,其他很多语料都需要用爬虫抓取,或者付费获得。 维基百科转载 2016-12-03 14:59:59 · 1149 阅读 · 0 评论 -
NLP术语
准确率指的是“所有分类正确的样本数/所有样本” 精确率是“特定类分对的样本数/所有预测为特定类的样本数” 一定要认真啊,不然–>原创 2016-11-10 14:45:07 · 368 阅读 · 0 评论 -
Information Extraction
这是《语音和语言识别》第二十二章的笔记命名实体识别关系探测和分类时间和事件处理模板填充高级主题:生物医药学的信息提取关系探测和分类监督型学习方法可以把这个问题拆分成两个步骤: 判断两个候选项之间是否存在关系 : 使用一个二类分类器 给关系打上标签 : 使用多类分类器如朴素贝叶斯、决策树、最大熵 对于特征项的选取: 候选项的实体类型 实体类型的连接 候原创 2016-10-19 18:00:03 · 599 阅读 · 0 评论 -
卷积神经网络的卷积操作
卷积的运算可以分为反转、平移,相乘,求和。 在图像处理中,图像是一个大矩阵,卷积模板是一个小矩阵。按照上述过程,就是先把小矩阵反转,然后平移到某一位置,小矩阵的每一个小格对应大矩阵里面的一个小格,然后把对应小格里面的数相乘,把所有对应小格相乘的结果相加求和,得出的最后结果赋值给小矩阵中央小格对应的图像中小格的值,替换原来的值。就是上述说到的,反转、平移、相乘、求和。原创 2016-10-16 17:59:23 · 695 阅读 · 0 评论 -
Dialogue and Conversational Agents
人类会话的属性交替会话的规则:如果现在的说话者指定 A 为下一个说话者,那么 A 会成为下一个说话者如果现在的说话者没有指定下一个说话者,任何一个人都可能成为下一个说话者如果没人接话茬,现在的说话者可能会继续说话基本的对话系统 语音识别系统 自然语言理解 文本—语音系统 自然语言生成系统 对话管理系统 任务管理系统自然语言理解比如:HMM模型对话管理系统原创 2016-10-23 15:55:54 · 759 阅读 · 0 评论 -
结巴分词流程图
原创 2016-09-19 20:49:05 · 2688 阅读 · 0 评论 -
THUCLC笔记
THUCLC是清华的一个Java版本的文本分类器。分类使用的是LibLinear软件包,LibLinear和LibSVM相似,但是前者更擅长大量数据的处理。用来训练的是一些文本,压缩后大小为3.6GB。我是想看里面的特征提取,THUCLC的特征是:词 + tfidf。其中tfidf缩放在【0, 1】区间内。大致就了解了这些。明天再详细看看。原创 2016-07-19 17:45:03 · 274 阅读 · 0 评论 -
HanLP里使用DAT存取字典的方法
CoreBiGramTableDictionary.java和CoreDictionary.java结构思路词典里文件的格式:wordA@wordB frequencyCoreBiGramTableDictionary.java文件用一个TreeMap>来读取词典。用一个名为pair的int型数组来存储。因为一个wordA可能对应有多个wordB,所以用一个名为st原创 2016-03-28 21:41:36 · 1660 阅读 · 0 评论 -
Forward Algorithm
The goal of the forward algorithm is to compute the joint probability , where for notational convenience we have abbreviated as and as . Computing directly would require marginalizing over al原创 2015-12-07 15:28:06 · 575 阅读 · 0 评论 -
HMM和Viterbi
1. 隐马尔可夫模型的定义和构成2. 隐马尔可夫模型的三个问题3. 基于隐马尔可夫模型的分词算法实现1.1. 介绍隐马尔科夫模型之前首先说一下几个重要的概念,(1)马尔可夫假设:模型的当前状态仅仅依赖于前面n个状态,可以看到这种假设有可能会丢失信息。(2)马尔可夫过程:状态间的转移仅仅依赖于前n个状态的过程,也就是当前的状态跟前n个状态之前的状态转载 2015-12-05 21:08:17 · 511 阅读 · 0 评论 -
nlp
分词、词性标注、命名实体识别、关键词提取、自动摘要、拼音、简繁转换、文本推荐原创 2015-11-22 20:25:21 · 449 阅读 · 0 评论 -
机器学习第三节
指数分布族:伯努利分布、高斯分布、多项式分布、泊松分布、伽马分布。 伯努利分布用来对0-1问题进行建模 多项式分布用来对有K个结果的事件进行建模 泊松分布通常是用来对计数的过程进行建模 伽马分布和指数分布考虑的是正数的分布,经常被用来对间隔进行建模 β分布和迪利克雷分布通常用来对小数进行建模,是对概率分布进行建模的原创 2015-11-22 15:21:09 · 319 阅读 · 0 评论 -
K-Means
1.算法简述分类是指分类器(classifier)根据已标注类别的训练集,通过训练可以对未知类别的样本进行分类。分类被称为监督学习(supervised learning)。如果训练集的样本没有标注类别,那么就需要用到聚类。聚类是把相似的样本聚成一类,这种相似性通常以距离来度量。聚类被称为无监督学习(unspervised learning)。k-means转载 2015-11-14 21:27:36 · 406 阅读 · 0 评论 -
NLP资源
最近把一些在网上见到的自然语言处理的资源整理了一下,包括论文列表、软件资源和一些实验室主页、个人主页等,希望能对NLP研究者有所帮助,由于个人视野有限,目前只整理了这些,以后会持续更新。在此也感谢这些资源的提供者和维护者。转载请标明出处(http://blog.csdn.net/xuh5156/article/details/7437475)论文、博客1.转载 2015-10-12 19:11:33 · 712 阅读 · 0 评论 -
机器学习,斯坦福公开课
第一节:提到了监督学习和非监督学习,举例:吧一张图片利用聚类算法变为3D魔心;直升机自动识别障碍,机器狗自动爬过障碍。原创 2015-10-25 16:03:26 · 350 阅读 · 0 评论 -
基于Tire树和最大概率法的中文分词功能的Java实现
对于分词系统的实现来说,主要应集中在两方面的考虑上:一是对语料库的组织,二是分词策略的制订。1. Tire树Tire树,即字典树,是通过字串的公共前缀来对字串进行统计、排序及存储的一种树形结构。其具有如下三个性质:1) 根节点不包含字符(或汉字),除根节点以外的每个节点只能包含一个字符(汉字)2) 从根节点到任一节点的路径上的所有节点中的字符转载 2015-11-04 20:51:28 · 1805 阅读 · 0 评论 -
Lucene的几种分词系统
1、 StopAnalyzerStopAnalyzer能过滤词汇中的特定字符串和词汇,并且完成大写转小写的功能。2、 StandardAnalyzerStandardAnalyzer根据空格和符号来完成分词,还可以完成数字、字母、E-mail地址、IP地址以及中文字符的分析处理,还可以支持过滤词表,用来代替StopAnalyzer能够实现的过滤功能。3、 Simpl转载 2015-10-20 14:32:59 · 677 阅读 · 0 评论 -
正向最大匹配中文分词算法
中文分词一直都是中文自然语言处理领域的基础研究。目前,网络上流行的很多中文分词软件都可以在付出较少的代价的同时,具备较高的正确率。而且不少中文分词软件支持Lucene扩展。但不管实现如何,目前而言的分词系统绝大多数都是基于中文词典的匹配算法。 在这里我想介绍一下中文分词的一个最基础算法:最大匹配算法 (Maximum Matching,以下简称MM算法) 。MM算法有两种:一种正向转载 2015-11-04 20:53:51 · 534 阅读 · 0 评论 -
Lucene创建索引与搜索索引试手
由于仿写的源码的版本是Lucene2.1.0,我用的Lucene已经是4.5.0了,所以像创建IndexWriter、IndexSearcher的时候源码的已经不能用了,只好自己查api摸索,所以有个老师在旁边指导该多好。先说LuceneIndexer。Analyzer analyzer = new CJKAnalyzer();我开始是写的这个,然后查到的hits.totalHits=原创 2015-10-19 16:02:15 · 550 阅读 · 1 评论 -
Lucene创建索引和搜索索引
原创 2015-10-18 15:42:24 · 445 阅读 · 0 评论 -
机器学习
在本篇文章中,我将对机器学习做个概要的介绍。本文的目的是能让即便完全不了解机器学习的人也能了解机器学习,并且上手相关的实践。这篇文档也算是EasyPR开发的番外篇,从这里开始,必须对机器学习了解才能进一步介绍EasyPR的内核。当然,本文也面对一般读者,不会对阅读有相关的前提要求。在进入正题前,我想读者心中可能会有一个疑惑:机器学习有什么重要性,以至于要阅读完这篇非常长的文章呢?我转载 2015-11-01 21:41:45 · 376 阅读 · 0 评论 -
An Implementation of Double-Array Trie
ContentsWhat is Trie?What Does It Take to Implement a Trie?Tripple-Array TrieDouble-Array TrieSuffix CompressionKey InsertionKey DeletionDouble-Array Pool AllocationAn ImplementationDownloadOther转载 2015-11-22 22:20:52 · 390 阅读 · 0 评论 -
2015-11-23 12:50:55
中文分词最短路分词N-最短路分词CRF分词索引分词极速词典分词用户自定义词典词性标注命名实体识别中国人名识别音译人名识别日本人名识别地名识别实体机构名识别关键词提取TextRank关键词提取转载 2015-11-23 12:50:25 · 647 阅读 · 0 评论 -
An Implementation of Double-Array Trie
An Implementation of Double-Array TrieContentsWhat is Trie?What Does It Take to Implement a Trie?Tripple-Array TrieDouble-Array TrieSuffix CompressionKey InsertionKey DeletionDouble-Array Pool A转载 2015-12-06 20:35:25 · 396 阅读 · 0 评论 -
Crf模型
Crf模型1. 定义一阶(只考虑y前面的一个)线性条件随机场:相比于最大熵模型的输入x和输出y,crf模型的输入输出都是序列化以后的矢量,是对最大熵模型的序列扩展。相比于最大熵模型的另外一个不同是,crf多出了一个维度j(j表示序列x的位置),即任意一个输出yi,都跟所有的输入x有关。转载 2016-01-22 20:51:15 · 9771 阅读 · 0 评论