Jieba和SnowNLP是两个常用的中文自然语言处理(NLP)模块,广泛应用于文本预处理和分析。Jieba以其高效的中文分词功能著称,提供了三种分词模式:精确模式、全模式和搜索引擎模式,适用于不同的应用场景。它还支持自定义词典,以提高分词的准确性和灵活性。此外,Jieba还包含词性标注、关键词提取和TF-IDF计算等功能。

SnowNLP则是一个功能全面的中文NLP库,专注于中文文本的情感分析、文本分类和拼音转换等任务。它易于使用,能够处理繁体和简体中文,并提供了丰富的API接口。SnowNLP的情感分析功能特别强大,可以对文本进行情感倾向的预测,适用于微博、评论等社交媒体数据的分析。

函数名所属模块分类功能
jieba.cutJieba分词精确模式分词
jieba.cut_for_searchJieba分词搜索引擎模式分词
jieba.lcutJieba分词精确模式分词,返回列表
jieba.lcut_for_searchJieba分词搜索引擎模式分词,返回列表
jieba.add_wordJieba词典向自定义词典中添加新词
jieba.del_wordJieba词典从自定义词典中删除词
jieba.load_userdictJieba词典加载自定义词典
jieba.analyse.extract_tagsJieba关键词提取关键词
jieba.analyse.textrankJieba关键词使用TextRank算法提取关键词
jieba.posseg.cutJieba词性标注进行词性标注
snownlp.SnowNLPSnowNLP核心初始化SnowNLP对象
snownlp.SnowNLP.wordsSnowNLP分词分词
snownlp.SnowNLP.tagsSnowNLP词性标注词性标注
snownlp.SnowNLP.sentimentsSnowNLP情感分析情感分析
snownlp.SnowNLP.summarySnowNLP摘要提取摘要
snownlp.SnowNLP.keywordsSnowNLP关键词提取关键词
snownlp.SnowNLP.pinyinSnowNLP拼音转换为拼音
snownlp.SnowNLP.tfSnowNLP统计分析计算TF值
snownlp.SnowNLP.idfSnowNLP统计分析计算IDF值
snownlp.SnowNLP.simSnowNLP相似度计算句子相似度

以下是Jieba和SnowNLP两个模块中常用函数的参数注释、示例和简短说明:

Jieba

  1. jieba.cut(sentence, cut_all=False, HMM=True)

    • sentence: 要分词的文本字符串。
    • cut_all: 是否使用全模式分词,默认为False。
    • HMM: 是否使用隐马尔可夫模型,默认为True。

    示例:

    import jieba
    
    text = "我来到北京清华大学"
    words = jieba.cut(text, cut_all=False)
    print("/".join(words))

    说明:精确模式分词。

  2. jieba.cut_for_search(sentence, HMM=True)

    • sentence: 要分词的文本字符串。
    • HMM: 是否使用隐马尔可夫模型,默认为True。

    示例:

    import jieba
    
    text = "我来到北京清华大学"
    words = jieba.cut_for_search(text)
    print("/".join(words))

    说明:搜索引擎模式分词。

  3. jieba.lcut(sentence, cut_all=False, HMM=True)

    • sentence: 要分词的文本字符串。
    • cut_all: 是否使用全模式分词,默认为False。
    • HMM: 是否使用隐马尔可夫模型,默认为True。

    示例:

    import jieba
    
    text = "我来到北京清华大学"
    words = jieba.lcut(text, cut_all=False)
    print(words)

    说明:精确模式分词,返回列表。

  4. jieba.lcut_for_search(sentence, HMM=True)

    • sentence: 要分词的文本字符串。
    • HMM: 是否使用隐马尔可夫模型,默认为True。

    示例:

    import jieba
    
    text = "我来到北京清华大学"
    words = jieba.lcut_for_search(text)
    print(words)

    说明:搜索引擎模式分词,返回列表。

  5. jieba.add_word(word, freq=None, tag=None)

    • word: 要添加的词。
    • freq: 词频,默认为None。
    • tag: 词性,默认为None。

    示例:

    import jieba
    
    jieba.add_word("清华大学")
    text = "我来到北京清华大学"
    words = jieba.cut(text)
    print("/".join(words))

    说明:向自定义词典中添加新词。

  6. jieba.del_word(word)

    • word: 要删除的词。

    示例:

    import jieba
    
    jieba.del_word("清华大学")
    text = "我来到北京清华大学"
    words = jieba.cut(text)
    print("/".join(words))

    说明:从自定义词典中删除词。

  7. jieba.load_userdict(filepath)

    • filepath: 自定义词典文件路径。

    示例:

    import jieba
    
    jieba.load_userdict("user_dict.txt")
    text = "我来到北京清华大学"
    words = jieba.cut(text)
    print("/".join(words))

    说明:加载自定义词典。

  8. jieba.analyse.extract_tags(sentence, topK=20, withWeight=False, allowPOS=())

    • sentence: 要提取关键词的文本字符串。
    • topK: 返回关键词的数量,默认为20。
    • withWeight: 是否返回每个关键词的权重,默认为False。
    • allowPOS: 仅包括指定词性的词,默认为空元组。

    示例:

    import jieba.analyse
    
    text = "我来到北京清华大学"
    keywords = jieba.analyse.extract_tags(text, topK=5)
    print(keywords)

    说明:提取关键词。

  9. jieba.analyse.textrank(sentence, topK=20, withWeight=False, allowPOS=('ns', 'n', 'vn', 'v'))

    • sentence: 要提取关键词的文本字符串。
    • topK: 返回关键词的数量,默认为20。
    • withWeight: 是否返回每个关键词的权重,默认为False。
    • allowPOS: 仅包括指定词性的词,默认为 ('ns', 'n', 'vn', 'v')。

    示例:

    import jieba.analyse
    
    text = "我来到北京清华大学"
    keywords = jieba.analyse.textrank(text, topK=5)
    print(keywords)

    说明:使用TextRank算法提取关键词。

  10. jieba.posseg.cut(sentence, HMM=True)

    • sentence: 要进行词性标注的文本字符串。
    • HMM: 是否使用隐马尔可夫模型,默认为True。

    示例:

    import jieba.posseg as pseg
    
    text = "我来到北京清华大学"
    words = pseg.cut(text)
    for word, flag in words:
        print(f'{word} {flag}')

    说明:进行词性标注。

SnowNLP

  1. snownlp.SnowNLP(text)

    • text: 要处理的文本字符串。

    示例:

    from snownlp import SnowNLP
    
    text = "我来到北京清华大学"
    s = SnowNLP(text)
    print(s.words)

    说明:初始化SnowNLP对象。

  2. snownlp.SnowNLP.words

    • 无参数。

    示例:

    from snownlp import SnowNLP
    
    text = "我来到北京清华大学"
    s = SnowNLP(text)
    print(s.words)

    说明:分词。

  3. snownlp.SnowNLP.tags

    • 无参数。

    示例:

    from snownlp import SnowNLP
    
    text = "我来到北京清华大学"
    s = SnowNLP(text)
    print(s.tags)

    说明:词性标注。

  4. snownlp.SnowNLP.sentiments

    • 无参数。

    示例:

    from snownlp import SnowNLP
    
    text = "这个产品非常好"
    s = SnowNLP(text)
    print(s.sentiments)

    说明:情感分析。

  5. snownlp.SnowNLP.summary

    • n: 提取摘要的句子数,默认为3。

    示例:

    from snownlp import SnowNLP
    
    text = "我来到北京清华大学。清华大学是中国著名的高等学府。"
    s = SnowNLP(text)
    print(s.summary(1))

    说明:提取摘要。

  6. snownlp.SnowNLP.keywords

    • n: 提取关键词的数量,默认为5。

    示例:

    from snownlp import SnowNLP
    
    text = "我来到北京清华大学。清华大学是中国著名的高等学府。"
    s = SnowNLP(text)
    print(s.keywords(3))

    说明:提取关键词。

  7. snownlp.SnowNLP.pinyin

    • 无参数。

    示例:

    from snownlp import SnowNLP
    
    text = "清华大学"
    s = SnowNLP(text)
    print(s.pinyin)

    说明:转换为拼音。

  8. snownlp.SnowNLP.tf

    • 无参数。

    示例:

    from snownlp import SnowNLP
    
    text = "清华大学 清华大学"
    s = SnowNLP(text)
    print(s.tf)

    说明:计算TF值。

  9. snownlp.SnowNLP.idf

    • 无参数。

    示例:

    from snownlp import SnowNLP
    
    text = "清华大学 清华大学"
    s = SnowNLP(text)
    print(s.idf)

    说明:计算IDF值。

  10. snownlp.SnowNLP.sim

    • sentence: 要比较的句子。

    示例:

    from snownlp import SnowNLP
    
    text1 = "我来到北京清华大学"
    text2 = "我去北京大学"
    s1 = SnowNLP(text1)
    s2 = SnowNLP(text2)
    print(s1.sim(text2))

    说明:计算句子相似度。

最后修改:2024 年 07 月 03 日
喵~