使用Spark框架中文分詞統計

2021-07-23 06:17:35 字數 1577 閱讀 7463

curl -i"認知商業需要認知技術&pattern=ws&format=plain"

// 建立streaming上下文,使用2個執行緒,流處理時間視窗1秒

vallines=ssc.sockettextstream("localhost",9999)// 將行拆分成單詞

valwords=lines.flatmap(_.split(" "))// 統計詞頻

valpairs=words.map(word=>(word,1))valwordcounts=pairs.reducebykey(_+_)// 列印統計結果

wordcounts.print// 啟動流,開始計算

ssc.start

ssc.awaittermination

執行程式 

cd $spark_home目錄, 

輸入: 

./bin/run-example streaming.networkwordcount llhost 9999

spark會啟動乙個spark streaming的wordcount範例程式,在9999埠監聽,並進行詞頻統計。然後,通過另外乙個指令碼,用curl呼叫哈工大語言雲進行分詞,並通過linux命令nc將結果寫入埠9999的socket: 

curl-i 「認知商業需要認知技術&pattern=ws&format=plain」|nc -lk 9999

總結 因為其中頻度最高的詞彙就是「**」。當然,真正應用中需要結合權重演算法,將一些常用詞如「的」,「然後」,「因此」之類的詞彙排除。哈工大語言雲服務和sparkstreaming構建了乙個簡單的實時中文詞頻統計框架,下一步可以考慮結合爬蟲獲取實時新聞,然後通過上述框架進行中文分詞和詞頻統計,並判斷新聞的熱點關鍵字。也可以構建基於關鍵字的權重向量,再呼叫聚類模型對新聞進行實時主題分類。可以使用nutch這個高大上的東西,使用deploy模式將爬取的內容儲存在hdfs中。

nutch搭建其實很簡單,可以選用2.x版本,可以用deploy模式或者local模式都是可以的,當然最好是用deploy模式,執行nutch指令碼,注意你可以使用索引,加上solr,當爬取內容需要做搜尋管理時,索引是必須的。

下步想法 

可以使用spring mvc解決平台顯示,後台提供分詞統計的結果。

使用Spark框架中文分詞統計

curl i 認知商業需要認知技術 pattern ws format plain 建立streaming上下文,使用2個執行緒,流處理時間視窗1秒 vallines ssc.sockettextstream localhost 9999 將行拆分成單詞 valwords lines.flatmap...

使用jieba 中文分詞 庫統計詞頻

以統計水滸傳人物出場次數為例,列出出場次數最高的前三名。import jieba 引用中文分詞庫 txt open shuihu.txt r encoding gb18030 read 讀取檔案,注意編碼 excludes 通過不斷優化排除結果中的無用詞 words jieba.lcut txt 中...

統計中文分詞(最大熵)

在機器學習中,序列標註 sequence labeling 是一種常見的模式識別任務,它用來給一組可觀察物件打上狀態 類別 標籤。它可以解決nlp中的分詞 word segement 詞性標註 part of speech tagging 命名實體識別 named entity recognitio...