• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            不會飛的鳥

            2010年12月10日 ... 不鳥他們!!! 我要用自己開發的分布式文件系統、分布式調度系統、分布式檢索系統, 做自己的搜索引擎!!!大魚有大志!!! ---楊書童

            [轉]TF-IDF與余弦相似性的應用(三):自動摘要

            有時候,很簡單的數學方法,就可以完成很復雜的任務。

            這個系列的前兩部分就是很好的例子。僅僅依靠統計詞頻,就能找出關鍵詞相似文章。雖然它們算不上效果最好的方法,但肯定是最簡便易行的方法。

            今天,依然繼續這個主題。討論如何通過詞頻,對文章進行自動摘要(Automatic summarization)。

            如果能從3000字的文章,提煉出150字的摘要,就可以為讀者節省大量閱讀時間。由人完成的摘要叫"人工摘要",由機器完成的就叫"自動摘要"。許多網站都需要它,比如論文網站、新聞網站、搜索引擎等等。2007年,美國學者的論文《A Survey on Automatic Text Summarization》(Dipanjan Das, Andre F.T. Martins, 2007)總結了目前的自動摘要算法。其中,很重要的一種就是詞頻統計。

            這種方法最早出自1958年的IBM公司科學家H.P. Luhn的論文《The Automatic Creation of Literature Abstracts》

            Luhn博士認為,文章的信息都包含在句子中,有些句子包含的信息多,有些句子包含的信息少。"自動摘要"就是要找出那些包含信息最多的句子。

            句子的信息量用"關鍵詞"來衡量。如果包含的關鍵詞越多,就說明這個句子越重要。Luhn提出用"簇"(cluster)表示關鍵詞的聚集。所謂"簇"就是包含多個關鍵詞的句子片段。

            上圖就是Luhn原始論文的插圖,被框起來的部分就是一個"簇"。只要關鍵詞之間的距離小于"門檻值",它們就被認為處于同一個簇之中。Luhn建議的門檻值是4或5。也就是說,如果兩個關鍵詞之間有5個以上的其他詞,就可以把這兩個關鍵詞分在兩個簇。

            下一步,對于每個簇,都計算它的重要性分值。

            以前圖為例,其中的簇一共有7個詞,其中4個是關鍵詞。因此,它的重要性分值等于 ( 4 x 4 ) / 7 = 2.3。

            然后,找出包含分值最高的簇的句子(比如5句),把它們合在一起,就構成了這篇文章的自動摘要。具體實現可以參見《Mining the Social Web: Analyzing Data from Facebook, Twitter, LinkedIn, and Other Social Media Sites》(O'Reilly, 2011)一書的第8章,python代碼見github

            Luhn的這種算法后來被簡化,不再區分"簇",只考慮句子包含的關鍵詞。下面就是一個例子(采用偽碼表示),只考慮關鍵詞首先出現的句子。

              Summarizer(originalText, maxSummarySize):

                // 計算原始文本的詞頻,生成一個數組,比如[(10,'the'), (3,'language'), (8,'code')...]
                wordFrequences = getWordCounts(originalText)

                // 過濾掉停用詞,數組變成[(3, 'language'), (8, 'code')...]
                contentWordFrequences = filtStopWords(wordFrequences)

                // 按照詞頻進行排序,數組變成['code', 'language'...]
                contentWordsSortbyFreq = sortByFreqThenDropFreq(contentWordFrequences)

                // 將文章分成句子
                sentences = getSentences(originalText)

                // 選擇關鍵詞首先出現的句子
                setSummarySentences = {}
                foreach word in contentWordsSortbyFreq:
                  firstMatchingSentence = search(sentences, word)
                  setSummarySentences.add(firstMatchingSentence)
                  if setSummarySentences.size() = maxSummarySize:
                    break

                // 將選中的句子按照出現順序,組成摘要
                summary = ""
                foreach sentence in sentences:
                  if sentence in setSummarySentences:
                    summary = summary + " " + sentence

                return summary

            類似的算法已經被寫成了工具,比如基于Java的Classifier4J庫的SimpleSummariser模塊、基于C語言的OTS庫、以及基于classifier4J的C#實現python實現

            posted on 2014-03-06 21:37 不會飛的鳥 閱讀(278) 評論(0)  編輯 收藏 引用

            亚洲国产二区三区久久| 久久久久久国产精品美女| 日本道色综合久久影院| 国内精品欧美久久精品| 亚洲精品成人久久久| 亚洲AV无码成人网站久久精品大| 成人综合伊人五月婷久久| 久久久久99精品成人片| 蜜臀av性久久久久蜜臀aⅴ麻豆| 日本免费久久久久久久网站| 香蕉aa三级久久毛片| 久久久国产精品亚洲一区| 久久久久久久亚洲精品| 蜜臀久久99精品久久久久久小说| 久久强奷乱码老熟女| 久久精品国产99久久久| 思思久久99热只有频精品66| 久久综合九色综合精品| 亚洲精品tv久久久久久久久| 欧洲性大片xxxxx久久久| 狠狠色丁香婷婷久久综合不卡| 狠狠色丁香久久婷婷综合蜜芽五月 | 亚洲AV日韩AV天堂久久| 国产精品狼人久久久久影院 | 四虎亚洲国产成人久久精品| 久久精品国产99久久无毒不卡| 久久精品这里只有精99品| 91视频国产91久久久| 色诱久久久久综合网ywww| 久久久久久精品免费免费自慰| 色婷婷综合久久久久中文字幕| 996久久国产精品线观看| 久久亚洲AV成人无码电影| 亚洲AV日韩精品久久久久久| 99精品国产综合久久久久五月天| 狠狠色丁香婷婷久久综合| 中文字幕久久精品| 少妇无套内谢久久久久| 狠狠色狠狠色综合久久| 精品国产99久久久久久麻豆| 99蜜桃臀久久久欧美精品网站|