基礎文本分析項目

文本分析概述

  文本分析常應用於:翻譯,搜索引擎,文章推薦,人物-事物-事件關係圖,智能輸入法等領域

因此文本分析通常是作爲一些項目的子項目來進行的

文本分析包含很多內容如:分詞,分類,錯別字糾正,輸入預測等

需求分析

【功能需求】

對於分詞:算法以一段文本作爲輸入,算法輸出分詞後的文本,如:輸入"基礎文本分析項目"  算法會輸出"基礎/文本/分析/項目"

對於分類:算法以一段文本作爲輸入,算法輸出文本的主題分佈

通過是否含有標記,在分類時選擇不同的算法,含有標記則選擇NBC(樸素貝葉斯),否則使用LDA(隱含狄利克雷分佈)

(暫時只有這兩種功能。。。後續會添加功能)

【性能需求】

響應時間:和搜索引擎類似

信息量速率:未知

主存容量:未知

。。。

【可靠性和可用性需求】

ps:系統在一個時間段出錯的次數不大於多少

未知

【出錯處理需求】

ps:這類需求說明系統對於環境錯誤應該怎樣響應

未知

【接口需求】

ps:數據的格式

用戶接口需求:用戶輸入UTF-8形式的文本文件,每一篇文章前有序號,序號後面有一個#號,結果將會以.txt文本的形式輸出給用戶

【約束】

ps:在設計或實現應用系統時應遵守的限制條件,如:精度,工具和語言約束,設計約束,應該使用的標準,應該使用的硬件平臺

精度: 分詞和文本分類的正確率在85%以上

         分詞正確率 = (分詞正確數)/(真實分詞數),因爲文本是沒有提前分詞的,因此採用抽樣法進行人工檢查

使用python語言,需要的庫有:

【逆向需求】

ps:軟件系統不應該做什麼

【將來可能提出的需求】

翻譯,搜索引擎,文章推薦,人物-事物-事件關係圖

語言及數據結構選擇

語言:Python , 因爲包含了大量的機器學習的第三方開源庫

數據結構:以UTF-8文本保存在數據庫中

詳細過程

1.通過python的jieba分詞對文本進行精確分詞

原理 (jiebao)

  • 基於前綴詞典實現高效的詞圖掃描,生成句子中漢字所有可能成詞情況所構成的有向無環圖 (DAG)
  • 採用了動態規劃查找最大概率路徑, 找出基於詞頻的最大切分組合
  • 對於未登錄詞,採用了基於漢字成詞能力的 HMM 模型,使用了 Viterbi 算法

2.自定義停用詞文本(也可網上下載),然後編寫代碼對分詞後的文本進行停用詞清理 

原理:

  • 遍歷分詞後的詞袋(未向量化),對於出現在停用詞文本中的詞進行刪除,然後得到新的詞袋(未向量化)

3.詞頻統計

原理:

  • 遍歷文本得到,詞-詞頻的鍵值對(key:詞, value:詞在某一文本出現的次數)

4.向量化

原理:

  • 將詞頻統計得到的詞袋(未向量化)中的中文轉換爲數值,需要注意的是,不同文本的相同的詞轉換得到的數值是相同的,既相同的詞會映射到相同的數值

5.NBC(Naive Bayes Classifier

對於NBC分類,需要先對模型進行訓練,然後生成主題-詞條的概率向量,然後再通過python中的樸素貝葉斯分類器對文本進行分類

原理:

  •  

5.LDA(Latent Dirichlet Allocation

對於LDA分類,

 

編碼

 

 

測試與修改

通過對測試集進行測試,得到模型的準確度,然後判斷是否需要對算法進行優化處理

 

 

還在更新中。。。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章