2012-01-01 138 views
16

我發現自己必須一直學習新事物。我一直在想辦法加速學習新科目的過程。我認爲如果我能寫一個程序來解析一篇維基百科文章併除去最有價值的信息,那麼它可能會很整潔。總結維基百科文章

我首先拿PDFs的維基百科文章,並提取前100個句子。我根據我認爲它的價值給每個句子評分。我結束了創建一個文件以下格式:

<sentence> 
<value> 
<sentence> 
<value> 
etc. 

我再分析此文件,並試圖找到一種與我給了它的價值相關聯的每個句子各種功能。我剛剛開始學習機器學習和統計以及什麼,所以我在這裏做了很多摸索。這是我最近的嘗試:https://github.com/JesseAldridge/Wikipedia-Summarizer/blob/master/plot_sentences.py

我試過一堆似乎根本沒有產生任何關聯的東西 - 平均字長,文章中的位置等等。非常多的產生任何有用關係的唯一東西是字符串的長度(更具體地說,計算小寫字母e的數量似乎最有效)。但這看起來有點蹩腳,因爲很明顯,較長的句子更可能包含有用的信息。

有一次,我想我已經找到了一些有趣的功能,但後來當我嘗試刪除異常值(通過只計算內部四分位數)時,他們證明會產生更糟糕的結果,然後簡單地爲每個句子返回0。這讓我想知道我還有多少其他事情可能會做錯......我也想知道這是否是解決這個問題的好辦法。

你認爲我走在正確的軌道上嗎?或者這只是一個傻瓜的差事?鏈接代碼中是否有明顯的缺陷?有沒有人知道更好的方法來處理總結維基百科文章的問題?我寧願有一個快速和骯髒的解決方案,而不是完美的東西,需要很長時間才能放在一起。任何一般建議也將受到歡迎。

+0

接下來,您會希望我們使用newspeak使掃描的文章更短;) – tylerthemiler 2012-01-01 03:02:07

+4

您顯然太舊了。將這種事情留給16歲的孩子http://www.wired.com/gadgetlab/2011/12/summly-app-summarization/ – ColinE 2012-01-01 07:23:41

+0

:)總結看起來很酷。我無法在我的iPod上運行它,但我可以閱讀評論。他們很混雜。我覺得它的效果不好。 – 2012-01-01 07:59:23

回答

13

考慮到你的問題更多地涉及研究活動而不是編程問題,你應該看看科學文獻。在這裏你可以找到許多算法的發佈細節,這些算法正是你想要的。谷歌搜索「關鍵字彙總」查找以下:

Single document Summarization based on Clustering Coefficient and Transitivity Analysis

Multi-document Summarization for Query Answering E-learning System

Intelligent Email: Aiding Users with AI

如果你看了上面,然後按照它們所包含的文獻,你會發現整個財富的信息。當然,足以構建一個功能性應用程序。

+2

好的,所以我只需要基於語法依賴關係分析來調用依賴關係圖,並使用聚類係數來測量節點連接。然後,拉出節點三角形並使用它們提取關鍵句是一件簡單的事情。 ffs ...非常快速和骯髒。儘管如此,感謝報紙。這是我可以得到的最好的信息。 – 2012-01-01 08:09:52

+4

嘿...你剛剛成功地總結了那篇論文的關鍵詞。也許這是一個機械turk的工作! – ColinE 2012-01-01 08:18:09

1

只是我的兩分錢......

每當我瀏覽維基百科上一個新的課題,我通常執行「廣度優先」搜索;在我掃描的每個鏈接(該鏈接引入了我不熟悉的主題)之前,我拒絕繼續閱讀另一個主題。我讀了每個段落的第一句,如果我在那篇文章中看到與原始主題有關的內容,我重複這個過程。

如果我來設計界面的維基百科「概括器」,我會

  1. 始終打印整個入門款。

  2. 對於本文的其餘部分,打印任何包含鏈接的句子。

    2a。將任何以逗號分隔的鏈接列表打印爲項目符號指向列表。

  3. 如果文章的鏈接是「展開」,請打印該文章的第一段。

  4. 如果該介紹性段落已展開,請重複帶有鏈接的句子列表。

這個過程可能無限重複。

我在說的是維基百科文章的總結與總結雜誌文章或博客文章不一樣。抓取行爲是通過Wikipedia快速學習入門概念的重要部分,我覺得它是最好的。通常情況下,文章的下半部分是citation needed標籤開始彈出的位置,但任何給定文章的前半部分都被視爲由社區給出的知識。