文本分析

 「文本分析」是對文字資料進行結構化處理、理解與應用的過程,在中文自然語言處理(NLP)中,常包括以下幾個步驟:


📌 一、文本分析常見流程(中文)

  1. 資料前處理

    • 去除標點符號、特殊字元、HTML 標籤

    • 轉為簡體或繁體統一格式

    • 去除停用詞(例如:「的」、「了」、「和」)

  2. 中文斷詞(Word Segmentation)

    • 將句子切分成詞語

    • 使用工具:jieba、pkuseg、CKIP、BERT等

  3. 特徵萃取

    • 詞頻統計(TF、TF-IDF)

    • 詞性標註、命名實體識別

    • 詞向量(Word2Vec、BERT Embedding)

  4. 主題分析與情感分析

    • LDA 主題模型

    • 情緒判斷(正面/負面)

    • 關鍵詞提取、摘要生成

  5. 應用層面

    • 分類(如:新聞分門別類)

    • 聚類(如:相似內容歸群)

    • 趨勢分析(如:輿情追蹤)

    • 對話系統(如客服、AI聊天)


🧪 範例程式:進行中文文本基本分析

以下是使用 jiebasklearn 對中文文本進行簡單文本分析的範例。

import jieba
from sklearn.feature_extraction.text import TfidfVectorizer

# 假設我們有三段中文文本
docs = [
    "王陽明提倡知行合一,對後世哲學有重大影響。",
    "自然語言處理是人工智慧的核心領域之一。",
    "茶席設計不只是擺設,更是生活美學的展現。"
]

# 使用 jieba 對每段文字斷詞
docs_cut = [" ".join(jieba.cut(doc)) for doc in docs]

# 建立 TF-IDF 向量
vectorizer = TfidfVectorizer()
X = vectorizer.fit_transform(docs_cut)

# 輸出詞彙表
print("詞彙表:")
print(vectorizer.get_feature_names_out())

# 輸出每段文字的向量表示
print("\nTF-IDF 向量矩陣:")
print(X.toarray())

📈 輸出解讀:

  • 詞彙表顯示所有出現過的關鍵詞(經過斷詞後)

  • TF-IDF 矩陣顯示每段文字中每個詞的重要性(權重)


🧠 延伸分析可以做的:

任務 工具/技術
關鍵詞提取 TextRank、TF-IDF
主題模型 LDA(gensim)、BERTopic
情緒分析 SnowNLP、BERT 中文情感分類模型
命名實體識別 HanLP、BERT+NER
文本聚類 KMeans、DBSCAN、UMAP
相似度分析 Cosine Similarity + 向量表示