HanLP自然语言处理

NLP「自然语言处理技术」

NLP是什么

     在计算机领域, NLP(Natural Language Processing),也就是人们常说的「自然语言处理」,就是研究如何让计算机读懂人类语言。这包括,既要能让计算机理解自然语言文本的意义,也能以自然语言文本来表达给定的深层的意图、思想等。所以,这项技术往往体现了人工智能的最高任务与境界,也就是说,只有当计算机具备了理解自然语言的能力时,机器才算实现了真正的智能。但是,由于中文词语是由汉字千变万化组成的,所以中文领域的「自然语言处理」显得尤为复杂。因此,这一领域的研究将涉及自然语言,即人们日常使用的语言,所以它与语言学的研究有着密切的联系,但又有重要的区别。自然语言处理并不是一般地研究自然语言,而在于研制能有效地实现自然语言通信的计算机系统,特别是其中的软件系统。因而它是计算机科学的一部分。自然语言处理(NLP)是计算机科学,人工智能语言学关注计算机和人类(自然)语言之间的相互作用的领域。

    专注于「自然语言处理」领域多年,  NLP 的技术和服务一直伴随着大快的发展而不断进步。从自动翻译、情报检索、自动标引、自动文摘、自动写故事小说等领域,都可以用我们的工具类DKNLPBase来处理,NLP 技术已不再单纯的停留在概念层面,而是逐步渗透并成功应用在大快的各个领域中。

 

为什么需要NLP

    举个例子,日常生活中,我们总会碰到一些不知道怎么读的生僻字, 这时往往就会去搜索引擎搜索,比如“4 个又念什么”。我们发现,搜索结果一定是向你展示“ 4 个又组成的字”是怎样的,并一旁附上拼音及注释等,而不是“ 4 个又念什么”这几个孤零零的词或者其表面的匹配结果。

 

这其实就是NLP技术的一个体现了。通过这项技术,人们不必花费大量心力去学习和了解难懂的计算机语言,而是用自己最习惯的语言来使用计算机,并进一步了解这背后的意义。

NLP究竟能用来干什么

大快NLP模块是大快大数据一体化平台的一个组件,用户引用该组件可以有效进行自然语言的处理工作,如进行文章摘要,语义判别以及提高内容检索的精确度和有效性。
自然语言处理如今不仅作为人工智能核心课题来研究,而且也作为新一代计算机的核心课题来研究。从知识产业角度看,专家系统,数据库,知识库,计算机辅助设计系统(CAD)、计算机辅助教学系统(CAI)、计算机辅助决策系统,办公室自动化管理系统,智能机器人等,都需要用自然语言处理,具有篇章理解能力的自然语言理解系统可用于机器自动翻译、情报检索、自动标引、自动文摘、自动写故事小说等领域,都可以用我们的工具类DKNLPBase来处理。
标准分词
方法签名:List<Term> StandardTokenizer.segment(String txt);
返回:分词列表。
签名参数说明:txt:要分词的语句。
范例:下例验证一段话第5个分词是阿法狗。
public void testSegment() throws Exception
    {
        String text = "商品和服务";
        List<Term> termList = DKNLPBase.segment(text);
        assertEquals("商品", termList.get(0).word);
   assertEquals("和", termList.get(1).word);
        assertEquals("服务", termList.get(2).word);
        text = "柯杰解说“李世石VS阿法狗第二局” 结局竟是这样";
        termList = DKNLPBase.segment(text);
        assertEquals("阿法狗", termList.get(5).word); // 能够识别"阿法狗"
}
关键词提取
方法签名:List<String> extractKeyword(String txt,int keySum);
返回:关键词列表.
签名参数说明:txt:要提取关键词的语句,keySum要提取关键词的数量
范例:给出一段话提取一个关键词是“程序员”。
public void testExtractKeyword() throws Exception
    {
        String content = "程序员(英文Programmer)是从事程序开发、维护的专业人员。" +
               "一般将程序员分为程序设计人员和程序编码人员," +
               "但两者的界限并不非常清楚,特别是在中国。" +
               "软件从业人员分为初级程序员、高级程序员、系统" +
               "分析员和项目经理四大类。";
        List<String> keyword = DKNLPBase.extractKeyword(content, 1);
        assertEquals(1, keyword.size());
        assertEquals("程序员", keyword.get(0));
    }
短语提取
方法签名:List<String> extractPhrase(String txt, int phSum);
返回:短语
签名参数说明:txt:要提取短语的语句,phSum短语数量
范例:给出一段文字,能代表文章的五个短语,第一个短语是算法工程师。

 

    NLP在最近几年取得了很好的进展,但还有许多的难题需要去解决,所以大快在积极的尝试,不过也正是这样有挑战的问题,才能让更多有才华的人投身到大快来推动它的发展。

https://blog.youkuaiyun.com/weixin_30443895/article/details/96548318?utm_medium=distribute.pc_relevant.none-task-blog-OPENSEARCH-3.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-OPENSEARCH-3.nonecase

https://blog.youkuaiyun.com/adnb34g/category_7529504.html

https://blog.youkuaiyun.com/adnb34g/category_7529504.html

https://blog.youkuaiyun.com/adnb34g/category_7529504.html

相似度判断: https://github.com/LeiDengDengDeng/sentence-similarity

TF-IDF与余弦相似性的应用(二):找出相似文章

http://www.ruanyifeng.com/blog/2013/03/cosine_similarity.html

 

HanLP是一系列模型与算法组成的NLP工具包,由大快搜索主导并完全开源,目标是普及自然语言处理在生产环境中的应用.HanLP具备功能完善,性能高效,架构清晰,语料时新,可自定义的特点。 HanLP提供下列功能: 中文分词 HMM-两字组(速度与精度最佳平衡;一百兆内存) 最短路分词,N-最短路分词 由字构词(侧重精度,全世界最大语料库,可识别新词;适合NLP任务) 感知机分词,CRF分词 词典分词(侧重速度,每秒数千万字符;省内存) 极速词典分词 所有分词器都支持: 索引全切分模式 用户自定义词典 兼容繁体中文 训练用户自己的领域模型 词性标注 HMM词性标注(速度快) 感知机词性标注,CRF词性标注(精度高) 命名实体识别 基于HMM角色标注的命名实体识别(速度快) 中国人名识别,音译人名识别,日本人名识别,地名识别,实体机构名识别 基于线性模型的命名实体识别(精度高) 感知机命名实体识别,CRF命名实体识别 关键词提取 TextRank关键词提取 自动摘要 TextRank自动摘要 短语提取 基于互信息和左右信息熵的短语提取 拼音转换 多音字,声母,韵母,声调 简繁转换 简繁分歧词(简体,繁体,台湾正体,香港繁体) 文本推荐 语义推荐,拼音推荐,字词推荐 依存句法分析 基于神经网络的高性能依存句法分析器 基于ArcEager转移系统的柱搜索依存句法分析器 文本分类 情感分析 文本聚类 KMeans,Repeated Bisection,自动推断聚类数目k word2vec 词向量训练,加载,词语相似度计算,语义运算,查询,KMEANS聚类 文档语义相似度计算 语料库工具 部分默认模型训练自小型语料库,鼓励用户自行训练。模块所有提供训练接口,语料可参考98年人民日报语料库。 在提供丰富功能的同时,HanLP内部模块坚持低耦合,模型坚持惰性加载,服务坚持静态提供,词典坚持明文发布,使用非常方便。默认模型训练自全世界最大规模的中文语料库,同时自带一些语料处理工具,帮助用户训练自己的模型。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值