当前位置:   article > 正文

HanLP自然语言处理

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.csdn.net/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.csdn.net/adnb34g/category_7529504.html

https://blog.csdn.net/adnb34g/category_7529504.html

https://blog.csdn.net/adnb34g/category_7529504.html

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

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

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

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/547064
推荐阅读
相关标签
  

闽ICP备14008679号