網頁

2019年3月20日 星期三

中文抽詞






首先先產生最大抽詞的sliding windows

在不久的將來
不久的將來大
久的將來大家
的將來大家認
將來大家認知
來大家認知中
大家認知中的
+-------------+-------------------------+
|postfixCorpus|                nGramList|
+-------------+-------------------------+
| 在不久的將來|[在, 在不, 在不久, 在不久的, 在不久的將]|
|  不久的將來大|[不, 不久, 不久的, 不久的將, 不久的將來]|
|  久的將來大家|[久, 久的, 久的將, 久的將來, 久的將來大]|
|  的將來大家認|[的, 的將, 的將來, 的將來大, 的將來大家]|
|  將來大家認知|[將, 將來, 將來大, 將來大家, 將來大家認]|
|  來大家認知中|[來, 來大, 來大家, 來大家認, 來大家認知]|
|  大家認知中的|[大, 大家, 大家認, 大家認知, 大家認知中]|
|  家認知中的行|[家, 家認, 家認知, 家認知中, 家認知中的]|
|  認知中的行銷|[認, 認知, 認知中, 認知中的, 認知中的行]|
|  知中的行銷將|[知, 知中, 知中的, 知中的行, 知中的行銷]|
|  中的行銷將等|[中, 中的, 中的行, 中的行銷, 中的行銷將]|
|  的行銷將等於|[的, 的行, 的行銷, 的行銷將, 的行銷將等]|
|  行銷將等於數|[行, 行銷, 行銷將, 行銷將等, 行銷將等於]|
|  銷將等於數位|[銷, 銷將, 銷將等, 銷將等於, 銷將等於數]|


=========== nGram word count ===============
使用 nGramList 把每個String 切成各種nGram 並且計算在全部詞中出現的次數


在不
在不久
在不久的
在不久的將

+-----+---------+
|nGram|wordCount|
+-----+---------+
|    在    |     2447|
|   在不  |       27|
|    不    |     2196|
|   不久|        3|
|  不久的|        2|
|    久|       23|
|   久的|        4|
|    的|    10974|
|   的將|        8|
|  的將來|        2|
|    將|      354|
|   將來|       10|
|    來|     1094|
|   來大|        8|
|  來大家|        3|
|    大|     1271|
|   大家|      112|
|  大家認|        2|
|    家|      308|
|   家認|        2|
|    認|      506|
|   認知|       88|
|  認知中|        9|
| 認知中的|        5|


把出現太少的nGram(必須大於minSupport) 和太短的字詞濾掉過後 ,再去產生 nGramCoherentWordList
這邊我們通常設定minWord =2

+——————+————+————+
 postfixNGram |  chars     |  entropy
+——————+————+————+
     首                      先           
+——————+————+————+
     首先                    先
+——————+————+————+
     首先先                來
+——————+————+————+
     首先先來            說
+——————+————+————+
    首先先來說        明
 +——————+————+————+

然後把同樣的postfixNGram group by 起來,把相同的chars 串起來成為 rightWords
再利用 rightWords 去算 rEntropy

以下面的範例”三個”  右邊會接的詞有 月月月理月月月月月層ㄧ內月月原方原女月目能人月特第第月原月月

先統計每個詞的數量再去算entropy
月 15
理 1
層 1
第 2

+------------+----------------------------------------------------------------------------------------------------+------------------+
|postfixNGram|                                                                                          rightWords|          rEntropy|
+------------+----------------------------------------------------------------------------------------------------+------------------+
|          交換|    時學生計產的過商學禮學資這學學學時時標就學計練的時期期學學學的達對之的的期學學時學機明學再學計整| 3.682203857235151|
|        交換學生|    經身為對時經體在生的回時的的|3.1820058147602137|
|          交易|     是即再的關如的營紀|2.9477027792200903|
|          交流|     了這溝進對就爬基而意而進文的的雖這並分的合| 3.880179922675738|
|          交通|     與方方費工裝同購規不費上|3.2516291673878235|
|           亦|        有時利或十能即可正邪是能是是無於可是積會選有可有可能隨可或能云有有友可讓想要即| 4.077212078381128|
|          亦可|      找提以選控延| 2.584962500721156|
|          亦有|      不使過小柔| 2.321928094887362|
 人們的生活|     幾定數其遊型| 2.584962500721156|
|          人力|      短與量安使量財量過而財到得短|3.1820058147602137|
|          人包|      設分含在等括與|2.8073549220576046|
|          人化|     的行行行的媒的從的推廣商和都| 2.896291529045928|
|          人卻|     會可是決因很| 2.584962500721156|
|          人口|      統年密的中| 2.321928094887362|
|         人可以|    走走因用即好協縮訴善善視穿| 3.392747410448784|
|          人和|      諧我同機國造資兩|               3.0|
|          人員|      回能透或的了中講在可來分工溝用信因之的到在主問的也只可有並就的也能編面或才掌更我將以但可於搜本做卻感不和也我| 5.282484261342596|
|          人回|     復來顧覆饋| 2.321928094887362|
|         人因此|   我每這從到在| 2.584962500721156|
|          企劃|     編或能書以以相上並的數因這很出透是的的書書這部等力能龍龍龍龍競專希主有公實或甚等的網等而前並給與操將提想書書書經甚書書從的等平的書提相案案經提與書| 4.964017114285987|
|         企劃書|     如篩包競也所並但搜找|3.3219280948873626|
|         企劃的|     成機機技多想|2.2516291673878226|
|          企業|管管近最尋可或或品品的所問達比工與當的來實概的的能能接管彼數完營及在家能利找提難或能透如資網整都以前組實聯將為品能參做能將提的都必聯的三成的前與能組或制管進與從家探增成社透來行品所品透與的也想在...| 5.770892470985168|
|         企業的|    品情思新服第第產行|2.9477027792200903|
|         企業能|    夠即有夠夠透把|2.1280852788913944|
|          企畫|       書開其方和| 2.321928094887362|
|           伍|         去前後後的也中末前膝是還|3.2516291673878235|


然後把左右entropy 都選出來 join起來

那種,10,3.3219280948873626,3.3219280948873626
那麼,14,3.5216406363433195,3.664497779200462
邪惡,13,2.3535339485774815,2.9312089489103226
邪惡勢力,6,2.584962500721156,2.584962500721156
部分,64,5.177668898701708,2.9940566354932776
部落客,8,3.0,3.0
部落格,12,3.2516291673878226,2.91829583405449
部門,32,4.152518266288633,4.265319531114783
郵件,17,3.4104172527605203,2.5580510765444573
都不,34,4.314972767530033,4.910992253015046
都不會,6,2.2516291673878226,2.584962500721156
都以,6,2.584962500721156,2.584962500721156
都可以,29,4.857980995127575,4.487122805397799
都在,32,4.538909765557392,3.6831573285181993
都對,8,2.75,2.75
都很,10,3.3219280948873626,3.3219280948873626
都必須,5,2.321928094887362,2.321928094887362
都想,6,2.584962500721156,2.584962500721156
都是,126,5.984507619970812,6.099475487514781
都是在,6,2.2516291673878226,2.584962500721156
都是我,7,2.8073549220576046,2.8073549220576046
都會,52,5.301307266176413,4.979097891134807
都有,51,4.817334352276654,4.934160940904763
都沒,17,3.0574760762899325,4.087462841250341
都沒有,6,2.584962500721156,2.584962500721156
都能,58,4.961874642523482,4.879172375590212
都能夠,10,3.3219280948873626,3.1219280948873624
都要,16,4.0,3.875

把ngram 分解,”都是” —> “都” “是” 用來計算coherence

[2018-04-20 14:41:12,245][INFO] WordExtractionService         : Select decomposeWord.....
+----+----------------------------------------------------------------------------------------------------+
|word|                                                                                               metas|
+----+----------------------------------------------------------------------------------------------------+
|   三|[[三年, 13, 0], [第三, 18, 0], [在大三, 15, 1], [大三, 46, 0], [三十, 7, 0], [的三, 11, 0], [前三, 11, 0], [三個, ...|
|  三個|                                                                        [[三個月, 15, 1], [有三個, 10, 0]]|
|  三時|                                                                                      [[大三時, 12, 0]]|
|   上|[[世界上, 19, 1], [上會, 7, 0], [上有, 16, 0], [加上, 78, 0], [網路上, 37, 1], [路上, 65, 0], [上的, 103, 0], [系上...|
|  上我|                                                                                       [[加上我, 9, 0]]|
|  上數|                                                                                       [[上數位, 7, 1]]|
|  上最|                                                                                      [[世界上最, 5, 1]]|
|  上的|                                            [[網路上的, 13, 1], [以上的, 18, 0], [平台上的, 6, 1], [線上的, 7, 0]]|
| 上社群|                                                                                      [[線上社群, 5, 0]]|
| 上線下|                                                                                      [[線上線下, 6, 0]]|
|  上透|                                                                                       [[上透過, 5, 1]]|
|  上進|                                                                                       [[上進行, 9, 1]]|
|   下|[[接下, 25, 0], [下來, 25, 0], [當下, 25, 0], [下的, 29, 0], [以下, 14, 0], [之下, 21, 0], [留下, 10, 0], [下了, ...|
|  下了|                                                                                       [[訂下了, 5, 0]]|
|  下來|                                                                                       [[接下來, 9, 0]]|
|  下去|                                                                        [[堅持下去, 13, 1], [下去的, 8, 1]]|
|  世代|                                                                          [[的世代, 6, 0], [世代的, 9, 1]]|
|  世界|[[世界上, 19, 1], [全世界, 8, 0], [拯救世界, 28, 1], [這個世界, 12, 1], [這世界, 5, 0], [改變世界, 8, 1], [世界在, 10, 1]...|
| 世界上|                                                                                      [[世界上最, 5, 2]]|
| 世界的|                                                                                     [[拯救世界的, 9, 1]]|


logger.info("recoverWord.....”);
產生要拿去算coherence 的組合

[2018-04-20 14:54:08,306][INFO] WordExtractionService         : recoverWord.....
+--------------+------------------------+
|           key|                  values|
+--------------+------------------------+
|   [三個, 31, 0]|   [[個, 1558], [三, 223]]|
|  [三個月, 15, 0]|   [[個月, 130], [三, 223]]|
|  [三個月, 15, 1]|    [[月, 186], [三個, 31]]|
|    [三十, 7, 0]|    [[十, 110], [三, 223]]|
|   [三天, 13, 0]|    [[天, 418], [三, 223]]|
|   [三年, 13, 0]|    [[年, 406], [三, 223]]|
|    [三次, 5, 0]|    [[次, 329], [三, 223]]|
|   [上不, 10, 0]|  [[不, 2196], [上, 1052]]|
|    [上也, 9, 0]|  [[也, 1316], [上, 1052]]|
|   [上了, 10, 0]|  [[了, 1426], [上, 1052]]|
|    [上任, 5, 0]|   [[任, 336], [上, 1052]]|
|    [上來, 7, 0]|  [[來, 1094], [上, 1052]]|
| [下定決心, 15, 0]|   [[定決心, 15], [下, 558]]|
| [下定決心, 15, 1]|    [[下定, 19], [決心, 31]]|
| [下定決心, 15, 2]|   [[下定決, 16], [心, 604]]|
|   [下我, 34, 0]|   [[我, 4219], [下, 558]]|
|   [下我們, 7, 0]|   [[我們, 376], [下, 558]]|
|   [下我們, 7, 1]|    [[下我, 34], [們, 699]]|
|   [下的, 29, 0]|  [[的, 10974], [下, 558]]|
|    [下載, 8, 0]|     [[載, 30], [下, 558]]|
|   [不上, 13, 0]|  [[不, 2196], [上, 1052]]|
|   [不了, 18, 0]|  [[不, 2196], [了, 1426]]|
|   [不但, 18, 0]|   [[不, 2196], [但, 718]]|
|    [不佳, 8, 0]|    [[不, 2196], [佳, 42]]|
|   [不停的, 5, 0]|    [[不, 2196], [停的, 6]]|
|   [不停的, 5, 1]|   [[不停, 8], [的, 10974]]|
|   [不僅, 66, 0]|    [[不, 2196], [僅, 98]]|
|  [不僅能, 10, 0]|   [[不, 2196], [僅能, 11]]|
|  [不僅能, 10, 1]|   [[不僅, 66], [能, 2179]]|




沒有留言:

張貼留言