ai
  • index
  • cursor
  • vector
  • crawl
  • crawl-front
  • DrissionPage
  • logging
  • mysql
  • pprint
  • sqlalchemy
  • contextmanager
  • dotenv
  • Flask
  • python
  • job
  • pdfplumber
  • python-docx
  • redbook
  • douyin
  • ffmpeg
  • json
  • numpy
  • opencv-python
  • pypinyin
  • re
  • requests
  • subprocess
  • time
  • uuid
  • watermark
  • milvus
  • pymilvus
  • search
  • Blueprint
  • flash
  • Jinja2
  • secure_filename
  • url_for
  • Werkzeug
  • chroma
  • HNSW
  • pillow
  • pandas
  • beautifulsoup4
  • langchain-community
  • langchain-core
  • langchain
  • langchain_unstructured
  • libreoffice
  • lxml
  • openpyxl
  • pymupdf
  • python-pptx
  • RAGFlow
  • tabulate
  • sentence_transformers
  • jsonl
  • collections
  • jieba
  • rag_optimize
  • rag
  • rank_bm25
  • Hugging_Face
  • modelscope
  • all-MiniLM-L6-v2
  • ollama
  • rag_measure
  • ragas
  • ASGI
  • FastAPI
  • FastChat
  • Jupyter
  • PyTorch
  • serper
  • uvicorn
  • markdownify
  • NormalizedLevenshtein
  • raq-action
  • CrossEncoder
  • Bi-Encoder
  • neo4j
  • neo4j4python
  • matplotlib
  • Plotly
  • Streamlit
  • py2neo
  • abc
  • read_csv
  • neo4jinstall
  • APOC
  • neo4jproject
  • uv
  • GDS
  • heapq
  • 1. 基本介绍
    • 主要特点
    • 安装方法
  • 2. 基本功能
    • 2.1 分词功能
      • 精确模式(默认)
      • 全模式
      • 搜索引擎模式
    • 2.2 词性标注
    • 2.3 关键词提取
  • 3. 高级功能
    • 3.1 自定义词典
      • 添加单个词
      • 加载词典文件
    • 3.2 并行分词
    • 3.3 返回词语在原文中的位置
  • 4. 应用示例
    • 4.1 文本分析
    • 4.2 结合其他库使用(如pandas)
  • 5. 性能优化建议
  • 6. 常见问题解决
  • 7. 与其他工具对比

jieba(结巴分词)是一个流行的中文分词工具,具有高效、准确和易用的特点,广泛应用于中文文本处理、自然语言处理等领域。

1. 基本介绍 #

主要特点 #

  • 支持三种分词模式:
    • 精确模式(默认)
    • 全模式
    • 搜索引擎模式
  • 支持繁体分词
  • 支持自定义词典
  • 词性标注功能
  • 并行分词(提高速度)
  • 高性能(C++实现核心算法)

安装方法 #

pip install jieba

2. 基本功能 #

2.1 分词功能 #

精确模式(默认) #

import jieba

text = "我爱自然语言处理技术"
seg_list = jieba.cut(text)  # 默认是精确模式
print("/".join(seg_list))  # 我/爱/自然语言/处理/技术

全模式 #

seg_list = jieba.cut(text, cut_all=True)
print("/".join(seg_list))  # 我/爱/自然/自然语言/语言/处理/技术

搜索引擎模式 #

seg_list = jieba.cut_for_search(text)
print("/".join(seg_list))  # 我/爱/自然/语言/自然语言/处理/技术

2.2 词性标注 #

import jieba.posseg as pseg

words = pseg.cut(text)
for word, flag in words:
    print(f"{word}({flag})", end=" ")
# 我(r) 爱(v) 自然语言(l) 处理(vn) 技术(n)

常用词性标记:

  • n - 名词
  • v - 动词
  • a - 形容词
  • r - 代词
  • m - 数词
  • t - 时间词

2.3 关键词提取 #

import jieba.analyse

text = "机器学习是人工智能的重要分支,深度学习是机器学习的一个子集"
# TF-IDF算法
keywords = jieba.analyse.extract_tags(text, topK=3)
print(keywords)  # ['机器学习', '深度', '学习']

# TextRank算法
keywords = jieba.analyse.textrank(text, topK=3)
print(keywords)  # ['学习', '机器', '深度']

3. 高级功能 #

3.1 自定义词典 #

添加单个词 #

jieba.add_word("自然语言处理")  # 添加新词
jieba.suggest_freq("自然语言处理", True)  # 调整词频

加载词典文件 #

词典文件格式(每行:词语 词频 词性):

云计算 5 n
区块链 3 n

加载方法:

jieba.load_userdict("user_dict.txt")

3.2 并行分词 #

jieba.enable_parallel(4)  # 开启并行分词,参数为并行进程数

3.3 返回词语在原文中的位置 #

result = jieba.tokenize(text)
for tk in result:
    print(f"word: {tk[0]}, start: {tk[1]}, end: {tk[2]}")

4. 应用示例 #

4.1 文本分析 #

def analyze_text(text):
    # 分词
    words = jieba.cut(text)
    word_count = len(list(words))

    # 关键词提取
    keywords = jieba.analyse.extract_tags(text, topK=5)

    # 词性统计
    pos_dict = {}
    for word, pos in pseg.cut(text):
        pos_dict[pos] = pos_dict.get(pos, 0) + 1

    return {
        "word_count": word_count,
        "keywords": keywords,
        "pos_stats": pos_dict
    }

4.2 结合其他库使用(如pandas) #

import pandas as pd

df = pd.DataFrame({"text": ["文本1内容", "文本2内容"]})
df["segmented"] = df["text"].apply(lambda x: "/".join(jieba.cut(x)))

5. 性能优化建议 #

  1. 使用并行分词:对于大文本,开启并行分词
  2. 预加载词典:在程序初始化时加载所有需要的词典
  3. 缓存分词结果:对相同文本避免重复分词
  4. 调整词典:根据领域特点优化词典

6. 常见问题解决 #

  1. 分词不准确:

    • 添加领域词汇到自定义词典
    • 调整词频 jieba.suggest_freq()
  2. 性能问题:

    • 开启并行模式
    • 使用jieba.cut的生成器版本而非jieba.lcut
  3. 内存占用高:

    • 避免同时处理极大文本
    • 使用流式处理大文件

7. 与其他工具对比 #

特性 jieba SnowNLP THULAC LTP
分词准确率 高 中 高 高
速度 快 慢 中 中
自定义词典 支持 不支持 支持 支持
词性标注 支持 支持 支持 支持
语言 Python Python C++ C++

jieba因其易用性和良好的平衡性成为最受欢迎的中文分词工具之一,特别适合Python开发者快速实现中文文本处理功能。

访问验证

请输入访问令牌

Token不正确,请重新输入