「文本分析」是對文字資料進行結構化處理、理解與應用的過程,在中文自然語言處理(NLP)中,常包括以下幾個步驟:
📌 一、文本分析常見流程(中文)
-
資料前處理
-
去除標點符號、特殊字元、HTML 標籤
-
轉為簡體或繁體統一格式
-
去除停用詞(例如:「的」、「了」、「和」)
-
-
中文斷詞(Word Segmentation)
-
將句子切分成詞語
-
使用工具:jieba、pkuseg、CKIP、BERT等
-
-
特徵萃取
-
詞頻統計(TF、TF-IDF)
-
詞性標註、命名實體識別
-
詞向量(Word2Vec、BERT Embedding)
-
-
主題分析與情感分析
-
LDA 主題模型
-
情緒判斷(正面/負面)
-
關鍵詞提取、摘要生成
-
-
應用層面
-
分類(如:新聞分門別類)
-
聚類(如:相似內容歸群)
-
趨勢分析(如:輿情追蹤)
-
對話系統(如客服、AI聊天)
-
🧪 範例程式:進行中文文本基本分析
以下是使用 jieba
和 sklearn
對中文文本進行簡單文本分析的範例。
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 + 向量表示 |