• <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>

            不會(huì)飛的鳥

            2010年12月10日 ... 不鳥他們?。。?我要用自己開發(fā)的分布式文件系統(tǒng)、分布式調(diào)度系統(tǒng)、分布式檢索系統(tǒng), 做自己的搜索引擎?。?!大魚有大志?。?! ---楊書童

            [轉(zhuǎn)]TF-IDF與余弦相似性的應(yīng)用(三):自動(dòng)摘要

            有時(shí)候,很簡單的數(shù)學(xué)方法,就可以完成很復(fù)雜的任務(wù)。

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

            今天,依然繼續(xù)這個(gè)主題。討論如何通過詞頻,對文章進(jìn)行自動(dòng)摘要(Automatic summarization)。

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

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

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

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

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

            下一步,對于每個(gè)簇,都計(jì)算它的重要性分值。

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

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

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

              Summarizer(originalText, maxSummarySize):

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

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

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

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

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

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

                return summary

            類似的算法已經(jīng)被寫成了工具,比如基于Java的Classifier4J庫的SimpleSummariser模塊、基于C語言的OTS庫、以及基于classifier4J的C#實(shí)現(xiàn)python實(shí)現(xiàn)。

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

            久久久亚洲AV波多野结衣| 久久精品aⅴ无码中文字字幕重口| 国产精品久久久久久久午夜片 | 久久香蕉超碰97国产精品| 九九精品99久久久香蕉| 亚洲伊人久久大香线蕉苏妲己| 亚洲伊人久久综合影院| 久久丫精品国产亚洲av不卡| 久久精品国产亚洲一区二区三区| 2019久久久高清456| 99热热久久这里只有精品68| 综合久久一区二区三区| 国产午夜久久影院| 狠狠综合久久综合88亚洲| 97超级碰碰碰碰久久久久| 色欲久久久天天天综合网| 久久精品国产国产精品四凭| 国产成人精品久久免费动漫| 伊人久久精品无码av一区| 色综合久久中文字幕综合网| 国产成人综合久久久久久| 国内精品久久久久伊人av| 国内精品伊人久久久影院| 99久久精品国产一区二区三区| 无码人妻久久一区二区三区免费丨| 久久99久久成人免费播放| 国产精品99久久久久久人| 久久综合88熟人妻| 久久午夜羞羞影院免费观看| 亚洲国产精品无码久久| 亚洲精品无码久久久久sm| 狠狠色丁香婷婷久久综合| 色狠狠久久综合网| 亚洲午夜精品久久久久久浪潮| 老司机午夜网站国内精品久久久久久久久 | 性做久久久久久免费观看| 欧美综合天天夜夜久久| 亚洲精品高清国产一久久| 国产高潮国产高潮久久久91 | 久久精品亚洲乱码伦伦中文| 亚洲国产精品婷婷久久|