推荐一个自然语言处理入门框架

推荐一个自然语言处理入门框架,第1张

推荐一个自然语言处理入门框架

如果目前对nlp还不知道是拿来干啥的,我这里推荐一个之前用得比较多的开源项目 Hanlp,这个项目的作者自己写了一本自然语言处理的书籍
《自然语言处理入门》
可以当做入门书籍参考学习一下。然后再看看自己对nlp究竟有没有兴趣。

简单介绍

作者写了一个配套的社区 hanlp的自然语言处理社区

在GitHub上的仓库地址 hankcs/HanLP,截止到目前,在GIthub上有24.9k个星。

这本书支持Java、Python两种语言。而且一直在迭代和更新。实测分词效果还可以。下面是简单用法。


实际应用

由于本身该框架支持Java和Python两种语言,所以实际应用也由这两种语言组成

Java版

首先,下载该框架的 jar 到本地,然后将其打到本地maven仓库中,然后再以依赖的方式引入到maven项目中。

引入依赖如下:


  com.hankcs.hanlp  
  hankcs    
  2.0 

分词的例子:

private Map separate(String text) {
  Segment segment = HanLP.newSegment().enableOffset(true);
  List terms = segment.seg(text);
  List results = new ArrayList<>();
  results.addAll(terms
    .stream()
    .map(term -> new Word(term.word, term.nature.toString()))
    .collect(Collectors.toList()));
  Map ans = getFrequency(results);
  return ans;
}

其中 Segment segment = HanLP.newSegment().enableOffset(true); 是定义了一个分词句柄,旨在描述使用什么算法,然后调用 segment.seg(text); 进行分词。

除了分词以外,书中还介绍了文本分类,文本摘要、关键词提取等等自然语言处理的内容,同时借以框架的方式举例子,在知晓理论的基础上让实践来辅助理解,大大增加了入门的成功率。


Python版


下面是一个分词的例子

import hanlp


class TextCheck(object):
    def __init__(self):
        self.tokenizer = hanlp.load('LARGE_ALBERT_base')

    def separate_words(self, tests: list) -> list:
        return self.tokenizer(tests)


if __name__ == '__main__':
    x = TextCheck()
    ans = x.separate_words(['今天你吃了吗'])
    print(ans)



可以发现,入手非常简单快捷。同时,这本书也给我们展示了更复杂的用法,比如,文本分类,情感分析,以及如何进行参数调优等。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5712607.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存