Word2vec加TextRank算法生成文章摘要
依賴包:https://download.csdn.net/download/dreamzuora/10853874
代碼:
算法背景:
自動文本摘要是自然語言處理中一個比較難的任務。新聞的摘要要求編輯能夠從新聞事件中提取出最關鍵的信息點,然后重新組織語言進行描述;一般論文的摘要要求作者先表述清楚問題,對前人工作中不完善的地方進行總結,然后用更凝練的語言描述自己的工作;綜述性質的論文要求作者通讀大量相關領域的工作,用最概括性的語言將每份工作的貢獻、創新點寫出來,并對每份工作的優缺點進行比較。本質上,文本摘要是一種信息過濾,輸出的文本比輸入的文本少很多,但卻包含了主要的信息,有點類似主成分分析(PCA)。從某種意義上,文本摘要與推薦系統的功能類似,都是為了提取出用戶感興趣的內容,只是使用的方法有很大不同。
自動摘要技術應用最廣的領域在新聞,由于新聞信息的過載,也由于很多新聞媒體為了嘩眾取寵,故意將標題起的特別吸引人眼球,但卻名不副實,人們迫切地希望有一個工具可以幫助自己用最短的時間了解最多的最有用的新聞。搜索引擎也是應用之一,基于查詢(Query)的自動文本摘要技術會幫助用戶盡快找到感興趣的內容。另外,隨著智能設備的普及,自動摘要技術的使用也會為新的信息瀏覽與人機交互方式帶來變革。
按照文檔數量,文本摘要可以分為單文檔摘要與多文檔摘要,前者是后者的基礎,但后者不只是前者結果的簡單疊加。前者經常應用于新聞信息的過濾,而后者,在搜索引擎中有很大的潛力,難度也隨之加大。
按照實現方式,可以分為兩大類,提取式(Extractive)和摘要式(Abstractive)。
提取式的方法基于一個假設:一篇文檔的核心思想可以用文檔中的某一句或者幾句話來概括。因此,文本摘要的任務就變成了找到文本中最重要的幾句話,這通常是一個排序問題。在文檔摘要問題中,基于圖的排序算法,是以文檔的每句話作為節點,句子之間的相似度作為邊的權值構構建圖模型,用PageRank算法進行求解,得到每個句子的得分,代表算法有TextRank和LexRank【。基于特征工程的排序算法實用性更強,然而需要人為進行調整的部分也變得更多。文本摘要問題中經常使用到的特征包括句子長度、句子位置、句子是否包含標題詞和句子關鍵詞打分等,代表算法是TextTeaser,由于只考慮了相關性而沒有考慮新穎性,以上的排序算法很可能出現排名靠前的幾句話表達的都是相似的意思,所以需要引入一個懲罰因子,在對排在后面的句子進行評分時,對它與在它之前的句子的相似度進行懲罰,也就是MMR(Maximum Margin Relevance)以上是提取式的自動摘要算法,其輸出結果是不同段落中選擇出來的Top K的句子,因此摘要的連貫性、一致性很難保證。
摘要式的方法是一種生成式的方法,它要求系統理解文本所表達的意思,然后用可讀性強的人類語言將其簡練地總結出來。這里包含幾個難點:
理解文本。與人類閱讀文本類似,需要明白文本表達的意思,涉及到的話題等。
可讀性強。可讀性是指生成的摘要能夠連貫與銜接。
簡練總結。即在理解文本的基礎上,用盡可能簡潔的文本表達最核心的部分。
上述難點即使對于人類也不是一件容易的事情,對于計算機更是。雖然在一些領域中,由于計算機強大的計算能力,人工智能能夠領先于人類,但在更多的領域,例如機器翻譯、文本摘要,AI離人類的水平還很遙遠。
近幾年隨著深度學習(Deep Learning)的發展,研究者們開始嘗試將一些最新的研究成果應用于自動文本摘要,尤其是機器翻譯(Machine Translation)中的Encoder-Decoder框架和Attention機制。從這個思路可以將文本摘要問題轉化為一個Sequence-2-Sequence問題,由此產生了基于RNN的Attention Model,基于CNN的ABS(Attention-Based Summarization)等。在一定程度上,它們實現了摘要式的自動文本摘要,但還是處于研究初期,效果不算太好。
目前使用到的語料數據分為兩種,一種是用于訓練深度網絡的大型語料,一種是用來參加測評的小型語料。前者經常使用CNN、Daily Mail等提供的新聞數據集。后者通常使用TAC(Text Analysis Conference)提供的小型數據集。關于中文語料數據集,常用的是哈爾濱工業大學(深圳)智能計算研究中心開放的LCSTS(Large Scale Chinese Short Text Summarization Dataset),數據主要采自新浪微博,是一個短文本摘要數據集。
關于評價方法,人工評價自不用提,自動評價目前公認的只有Lin在2003年提出的ROUGE(Recall-Oriented Understudy for Gisting Evaluation)指標【6】,基本思想是將待審的摘要和參考摘要的n元組共現統計量作為評價作為評價依據,然后通過一系列標準進行打分,包括:ROUGH-N、ROUGH-L、ROUGH-W、ROUGH-S和ROUGH-SU幾個類型。通俗來說是通過一些定量化的指標來描述待審摘要和參考文摘之間的相似性,例如共同出現次數、最長相同文本長度、帶權最長相同文本長度等。
背景:https://blog.csdn.net/Silience_Probe/article/details/80699282
word2vec使用過程(Java版):
https://blog.csdn.net/acwa123/article/details/72626580
詳解(python):https://blog.csdn.net/qq_22636145/article/details/75099792
hanlp介紹:http://hanlp.linrunsoft.com/
hanlp下載:https://github.com/hankcs/HanLP
hanlp(分詞)使用:https://blog.csdn.net/nima1994/article/details/72819973
hanlp1.7:https://github.com/hankcs/HanLP/tree/v1.7.0
總結
以上是生活随笔為你收集整理的Word2vec加TextRank算法生成文章摘要的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一对一聊天ajax实现
- 下一篇: hive的SerDe序列化