如題,簡單一點的功能是如何對一份英文 API 開發(fā)文檔進(jìn)行詞頻的統(tǒng)計?(文檔可能是多個 html 文件,也可能是 chm 文件,不是簡單的 txt 文本);
復(fù)雜一點的需求是,因為開發(fā)文檔涉及很多類名、函數(shù)或方法名等,單詞可能會連在一起,統(tǒng)計時最好能夠分開(這個可以根據(jù)命名規(guī)則來分開);
再復(fù)雜一點的需求是,因為單純統(tǒng)計一個文檔的詞頻沒多大的實際意義,如何將統(tǒng)計后的單詞再加工處理:
剔除掉一些簡單的,并對開發(fā)來說沒多大意義的單詞,如 the, are, to, is……
分析出里面涉及到計算機的專業(yè)名詞、編程中特定含義的單詞或編程語言的關(guān)鍵字(涉及到文檔對應(yīng)的不同語言);
對最終分析出的單詞標(biāo)注出解釋(中文,可以通過第三方 API)……
如果開發(fā)具有以上功能的軟件,具體需要涉及哪些技術(shù)? 歡迎提供你的想法……
呃,其實我的痛點是,看一份英文文檔時,有太多不懂的單詞,經(jīng)常要去查單詞,效率太低了,如果有一個工具可以統(tǒng)計分析出一份文檔的詞匯,就可以在看文檔前先大致熟悉詞匯的意思,提高效率;而且對于開發(fā)時,命名也有幫助……
修改備注:
分開連在一起的單詞確實不是分詞技術(shù),之前說錯了;
原問題提到的運用機器學(xué)習(xí),我的想法是這樣的:一個具有機器學(xué)習(xí)的軟件大量閱讀編程的開發(fā)文檔,找出里面的專業(yè)術(shù)語,使整個功能的實現(xiàn)更加智能化……當(dāng)然這是我瞎想的,不一定對,不喜勿噴;
最后,我提到的看英文文檔的問題,誰都有剛開始看不懂,效率低的階段,誰不知道多看,效率就會慢慢提高?道理大家都懂……但是,這個不是我們討論的重點,我只是有這么個想法,提出來讓大家討論下而已
另外,提的問題如果有錯,可以留言,我會修改,能不踩嗎?
業(yè)精于勤,荒于嬉;行成于思,毀于隨。
準(zhǔn)備考研,很久沒寫過代碼了,不過大概思路應(yīng)該是:
清洗過濾:對于html,首先把內(nèi)容過濾出來,你可以自己寫正則或者用找點別人寫好的
單詞分詞:先用空格等常見的分隔符對單詞過濾,再根據(jù)不同的語言命名規(guī)范找出一個個的單詞
過濾常用詞:在網(wǎng)上應(yīng)該可以找到英語常用詞的文件,匹配一下
WordCount:可以直接單純的用python自己實現(xiàn)MapReduce的過濾,或者Hadoop、Spark之類的也可以
到此為止就完成了過濾簡單詞的單詞統(tǒng)計了
關(guān)于統(tǒng)計出計算機相關(guān)詞,你需要網(wǎng)上下載計算機相關(guān)詞匯的數(shù)據(jù)文件,直接匹配即可
需要給出解釋的話,調(diào)用有道、百度翻譯的api即可,不過這些API可能有次數(shù)上限,我沒有用過。
以上所說步驟都沒有考慮效率的問題,如果需要考慮效率問題,還需要使用到些算法或直接使用別人寫好的類庫。
關(guān)于你所說到的機器學(xué)習(xí),這里的需求暫時不需要、且沒必要使用到。
最后:我還是想說,想讀懂文檔的最快的辦法就是多讀文檔,堅持讀下來,你會發(fā)現(xiàn)讀文檔的速度會越來越快。不過把這個當(dāng)作練手的項目,也算是做了點有意思的事情。
關(guān)于問題修改后的回復(fù):
你提及的機器學(xué)習(xí),目前大體上是有監(jiān)督式和非監(jiān)督式,但根據(jù)你的提及:
一個具有機器學(xué)習(xí)的軟件大量閱讀編程的開發(fā)文檔,找出里面的專業(yè)術(shù)語,使整個功能的實現(xiàn)更加智能化……
如果采用監(jiān)督式學(xué)習(xí)那必然需要語料數(shù)據(jù)的支持,而如果已經(jīng)有語料數(shù)據(jù)何不直接用字符串匹配實現(xiàn)?
當(dāng)采用非監(jiān)督式學(xué)習(xí),目前我也是初學(xué),依我的理解,似乎只能達(dá)到聚類的效果,若想自動識別是計算機術(shù)語,必然還是需要人工標(biāo)注或者數(shù)據(jù)的支持
如果再往下深究,就需要好好研究NLP了
我覺得你好像是對機器學(xué)習(xí)感興趣,但我感覺這個并不是機器學(xué)習(xí)練手的一個好項目。
這個應(yīng)該不叫英語分詞,分詞應(yīng)該指按句子成分劃分。連在一次的變量名可以考慮按常見的命名方式識別,比如大小寫的Camel-Case、下劃線分割的 Underscores 等。
分詞可以找各種 Word Splitting 庫,python 應(yīng)該有很多。計算機的專業(yè)名詞下載詞庫,單詞提取出來之后跟詞庫匹配得到釋義。
但其實即使做出來也不一定能更方便閱讀,光看單詞有點曲線救國的感覺,很可能根本看不進(jìn)去。計算機文章的詞匯量不是很多,一回生兩回熟,優(yōu)化查詞體驗比較妥,推薦 collins雙解 結(jié)合 Macmillan ,MDict 或者歐路詞典都可以加載。Chrome 也可以裝 Saladict 沙拉查詞。