中文分词工具
- jieba.cut 方法接受三个输入参数: 需要分词的字符串;cut_all 参数用来控制是否采用全模式;HMM 参数用来控制是否使用 HMM 模型
- jieba.cut_for_search 方法接受两个参数:需要分词的字符串;是否使用 HMM 模型。该方法适合用于搜索引擎构建倒排索引的分词,粒度比较细
- 待分词的字符串可以是 unicode 或 UTF-8 字符串、GBK 字符串。注意:不建议直接输入 GBK 字符串,可能无法预料地错误解码成 UTF-8
- jieba.cut 以及 jieba.cut_for_search 返回的结构都是一个可迭代的 generator,可以使用 for 循环来获得分词后得到的每一个词语(unicode),或者用
- jieba.lcut 以及 jieba.lcut_for_search 直接返回 list
- jieba.Tokenizer(dictionary=DEFAULT_DICT) 新建自定义分词器,可用于同时使用不同词典。jieba.dt 为默认分词器,所有全局分词相关函数都是该分词器的映射。
- pseg.cut(str1) ##词性标注,标注句子分词后每个词的词性
- jieba.analyse.extract_tags(str1,2) ##关键词提取,参数setence对应str1为待提取的文本,topK对应2为返回几个TF/IDF权重最大的关键词,默认值为20
- jieba.tokenize(test_sent) ##Tokenize:返回词语在原文的起始位置
import jieba
print("\ntext1:全模式")
text1 = jieba.cut("这是一篇用于测试的文章。我想学习如何使用结巴。", cut_all=True)
print("Full Mode: " + "/ ".join(text1))
print("\ntext2:精确模式")
text2 = jieba.cut("这是一篇用于测试的文章。我想学习如何使用结巴。", cut_all=False)
print("Default Mode: " + "/ ".join(text2))
print("\ntext3:默认")
text3 = jieba.cut("这是一篇用于测试的文章。我想学习如何使用结巴")
print(", ".join(text3))
print("\ntext4:搜索引擎模式")
text4 = jieba.cut_for_search("这是一篇用于测试的文章。我想学习如何使用结巴")
print(", ".join(text4))
import pandas as pd
train = pd.read_csv('data/train.csv')
train.head()
train['tokens'] = train['data'].apply(lambda x:jieba.lcut(x))
print(train['tokens'])
英文分词工具
import nltk
text="This is a text for test.And I want to learn how to use nltk."
words = nltk.word_tokenize(text) #分词
print(words)
import pandas as pd
data_df = pd.read_csv('data/ag_news_csv/train.csv')
data_df = train
data_df.head()
import nltk
data_df['tokens'] = data_df['content'].apply(lambda x:nltk.word_tokenize(x))
data_df['tokens']