分词
Jieba
支持中文简体和繁体分词
精确模式分词
将句子的分词最准确的切开,适合文本分析
1 2 3 4
| import jieba content = '需要分割的字符串' jieba.cut(content,cut_all = False) jieba.lcut(content,cut_all = False)
|
全模式分词
将句子的分词按照所有的可能性切割
1 2 3 4
| import jieba content = '需要分割的字符串' jieba.cut(content,cut_all = True) jieba.lcut(content,cut_all = True)
|
搜索引擎模式分词
在精确分词的基础上,对长词在此切分,适用于搜索引擎分词
1 2 3 4
| import jieba content = '需要分割的字符串' jieba.cut_for_search(content,cut_all = True) # 默认为False,返回一个生成器对象 jieba.lcut_for_search(content,cut_all = True) # 返回列表
|
用户自定义字典
设置用户自定义字典,提高准确率
1 2 3 4 5 6 7
| 词典格式(空格隔开) 词 词频(可省略) 词性(可省略) import jieba jieba.load_userdict('./userdict.txt') content = '需要分割的字符串' jieba.cut_for_search(content,cut_all = True) jieba.lcut_for_search(content,cut_all = True)
|
hanlp
中英文NLP工具包,基于tensorflow2.0
#使用pip安装
pip install hanlp
中文分词
1 2 3 4 5
| import hanlp
tokenizer = hanlp.load('CTB6_CONVSEG') tokenizer('需要分割的句子')
|
英文分词
1 2
| tokenizer = hanlp.utils.rules.tokenize_english tokenizer('A sentence that need to tokenize!')
|
命名实体识别
命名实体识别(Named Entity Recognition,NER),识别一段文本中的实体;
hanlp
中文
1 2 3 4 5
| import hanlp recognizer = hanlp.load(hanlp.pretrained.ner.MSRA_NER_BERT_BASE_ZH) recognizer(list('需要命名实体识别的具体'))
返回的是一个装有n个元祖的列表,每个元组代表一个命名实体
|
英文
1 2 3 4 5
| import hanlp recognizer = hanlp.load(hanlp.pretrained.ner.CONLL03_NER_BERT_BASE_UNCASED_EN)
recognizer(['this','is','a','sentence'])
|
词性标注(POS)
词性标注(part-of-Speech tagging,简写POS)就是标注出一段文本中每个词汇的词性;
jieba
1 2 3
| import jieba.posseg as pseg pseg.lcut('我爱自然语言处理')
|
hanlp
1 2 3 4 5 6 7 8 9 10 11
| import hanlp tagger = hanlp.load(hanlp.pretrained.pos.CTB5_POS_RNN_FASTTEXT_ZH)
tagger(list('我爱自然语言处理'))
import hanlp tagger = hanlp.load(hanlo.pretrained.pos.PTB_POS_RNN_FASTTEXT_EN) tagger(['i','love','natrual','language','processing'])
|