Javascript 字頻計算,Github wordfrequency 專案
近期將自己工作,用來計算字詞計算的工具重新改寫,轉換為 module 的形式,放到 github 的 wordfrequency 專案。
可以計算 一個詞或關鍵字的次數,也可以計算兩個詞共同的次數,可能的用途如下:
如何使用 Module
可以計算 一個詞或關鍵字的次數,也可以計算兩個詞共同的次數,可能的用途如下:
- 單詞頻計算,功能為:Tag Cloud、重要性
- 雙詞頻計算,功能為:計算兩個詞間的關係,如 Social Network Analysis Plot
var wf=require('./WordFreq')
module 內的方法函數
- dataToArrObj: 資料整理,將用 tab 分隔的資料轉換為,第一欄為 name 的索引。 可做為類似 Excel vlookup 的檢索匹配用 ["aaa\tbbb\tccc\tddd"]=>[{name="aaa",value="bbb\tccc\tddd"}]
- getkeyword: 參考 dataToArrObj 的 name 欄位,對應出 Value 。 輸入為 ["aaa","bbb","ccc"]
- colsTocol: 將讀入的多欄料,轉換為單欄的資料,類似正規化的過程。 例:['abc\tabc\tabc\t','cde\tcde\tcdt']=>[abc,abc,abc,cde,cde,cde]
- Counting: 計算矩陣內的字詞出現次數,例 ['a','a','b'] = >[{name:'a',value=2},{name:'b',value=1}]
- Arraytwkeyword: 將 ["aaa","bbb","ccc", "ddd"] 轉換為 ["aaa, bbb", "aaa, ccc", "aaa, ddd", "bbb, ccc", "bbb, ddd", "ccc, ddd"]
- wordRelation: 計算文字關係的函數, 輸入為 ["aaa\tbbb\tccc","bbb\tccc\tddd"] , tab 分格欄位,欄位數沒限定。轉換為 ["aaa, bbb", "aaa, ccc", .....]
- outputobj: 輸出轉換。將 [{name='aaaa',value=3},{name='bbbb',value=1}] => string="3\taaaa\n1\tbbbb\n" => 3 aaa 換行 1 bbb 換行
- outputArr(arr[,sep,col]): 輸出轉換。 arr 為輸入的一維陣陣["aaa","bbb"]=> string="aaa\nbbbb\n"。sep, col 可不輸入。 sep 指 string 的分割字元, col 預設 1 ,若需要透過 sep 分割成多欄,請在 sep 處輸入分隔符號,如 ';',而 col 請輸入比 1 大的任何數值。
如何使用
請至 wordfrequency 專案 的 sample/ 目錄下,有範例程式 sample.js 和範列資料 sample_Input.txt,執行後會產生 keyword.csv, wordrelation.csv 兩個輸出檔。
留言
張貼留言
,,