一、文章摘要自動生成
文章摘要自動生成是文本摘要生成的一種常見方式。它可以根據一篇文章的關鍵信息,自動提取最重要的內容,並生成文章概述。自動摘要的過程一般包括分詞、句子分割、關鍵詞提取等步驟。自動摘要的結果可以大大減輕人工閱讀負擔,提高文章閱讀效率。同時,自動摘要可以生成吸引讀者眼球的文章概述,提高文章的點擊率。
下面是使用Python的gensim庫實現文章摘要自動生成的示例代碼:
from gensim.summarization.summarizer import summarize import requests url = 'https://news.cnblogs.com/n/648307/' res = requests.get(url) content = res.text summary = summarize(content) print(summary)
二、文本摘要自動生成工具
文本摘要自動生成工具是目前比較常見的一種文本摘要生成方式。這些工具一般提供了可視化的界面,用戶可以直接輸入一篇文章(或者粘貼文章鏈接),選擇摘要長度、關鍵詞提取方式等參數,即可生成摘要。這種方式通常不需要用戶了解複雜的演算法和編碼知識,極大地降低了門檻,使得普通人也能夠自動生成摘要。
下面是使用百度AI的文本摘要自動生成工具的示例代碼:
import requests,json url = "https://aip.baidubce.com/rpc/2.0/nlp/v1/news_summary" data = { "title": "烏鎮互聯網大會開幕 張勇呼籲互聯網企業注重長期", "content": "10月20日,第六屆世界互聯網大會河南駐京辦舉行新聞發布會,介紹此屆大會籌備情況。此前,第六屆世界互聯網大會組委會在鄭州、北京宣布,此次大會將於11月22日至24日在浙江桐鄉烏鎮舉行。屆時百餘位國家元首、政府首腦和國際組織負責人,以及世界500強企業、全球知名互聯網企業負責人、行業專家學者等將齊聚烏鎮。烏鎮已成為全球範圍內互聯網企業參展和進行創新合作的重要平台。張勇表示,互聯網企業要始終關注長期,播下明天的種子。要圍繞數字中國、健康中國、智慧城市等展開創新合作,構建數字化新生活,推動數字產業高質量發展。", "max_summary_len": 150, "model": "NewsSummary", "content_type": 0 } access_token = "xxxxxx" # 請將xxxxxx替換為實際的access_token url = url + "?charset=UTF-8&access_token=" + access_token response = requests.post(url, json=data) result = json.loads(response.text) summary = result["summary"] print(summary)
三、文章內容摘要生成器
文章內容摘要生成器是一種定製化的文本摘要產生方式。用戶可以根據自己的需求,定製化一個專屬的摘要生成過程。例如,可以加入自定義的關鍵詞提取方法、摘要句子篩選規則等,以及對生成摘要進行後處理的方法。這種方式通常需要一定的編程知識和演算法背景,適合有一定技術背景的人使用。
下面是使用Python的Textrank演算法實現文章內容摘要生成器的示例代碼:
import jieba.analyse import jieba.posseg as pseg def extract_keywords(content): keywords = jieba.analyse.textrank(content, topK=20, withWeight=True, allowPOS=('ns', 'n', 'vn', 'v')) keyword_list = [] for item in keywords: keyword_list.append(item[0]) return keyword_list def summarization(content, keyword_list, max_summary_len=200): sentence_list = content.split('。') sentence_list = [sent + '。' for sent in sentence_list] # 句子中包含關鍵詞,則選中 selected = [] for sentence in sentence_list: for keyword in keyword_list: if keyword in sentence and sentence not in selected: selected.append(sentence) break # 摘要長度控制 summary = "" length = 0 for sentence in selected: summary += sentence length += len(sentence) if length >= max_summary_len: break return summary content = "文章內容摘要生成器的示例代碼,請大家仔細閱讀。文章內容摘要生成器需要結合關鍵詞提取、句子篩選等演算法。其中,關鍵詞提取通常用到textrank演算法。句子篩選需要根據關鍵詞匹配、摘要長度控制等規則。下面是代碼示例。" keyword_list = extract_keywords(content) summary = summarization(content, keyword_list) print(summary)
四、自動生成摘要
自動生成摘要是一種比較靈活的文本摘要生成方式。它根據不同的需求,可以靈活地選擇不同的演算法和技術,最終生成符合要求的摘要。自動生成摘要可以集成多種演算法,結合人工選擇和後處理,能夠產生高質量、高效率的文章摘要。
下面是使用Python的TextRank、LDA和主題模型演算法實現自動生成摘要的示例代碼:
from textrank4zh import TextRank4Keyword, TextRank4Sentence from gensim import corpora, models def summarize(content, summary_len=3): # TF-IDF tr4w = TextRank4Keyword() tr4w.analyze(text=content, window=2, lower=True) keywords = [] for item in tr4w.get_keywords(20, word_min_len=2): keywords.append(item.word) # LDA documents = content.split('\n') texts = [[word for word in document.split()] for document in documents] dictionary = corpora.Dictionary(texts) corpus = [dictionary.doc2bow(text) for text in texts] lda = models.ldamodel.LdaModel(corpus=corpus, id2word=dictionary, num_topics=5) topics = [] for index, score in sorted(lda[corpus[0]], key=lambda tup: -1*tup[1]): topics.append(lda.print_topic(index, 5)) # TextRank tr4s = TextRank4Sentence() tr4s.analyze(text=content, lower=True, source='all_filters') # 摘要生成 summary = "" count = 0 for item in tr4s.get_key_sentences(num=10, sentence_min_len=8): if set(item.words) & set(keywords) and item.sentence not in summary: summary += item.sentence count += 1 if count >= summary_len: break return summary content = "文本摘要自動生成的多個方面闡述,請大家仔細閱讀。" summary = summarize(content) print(summary)
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/286202.html