-
當(dāng)前位置:首頁 > 創(chuàng)意學(xué)院 > 技術(shù) > 專題列表 > 正文
Python文章文章生成器代碼(python編寫文章生成器)
大家好!今天讓創(chuàng)意嶺的小編來大家介紹下關(guān)于Python文章文章生成器代碼的問題,以下是小編對(duì)此問題的歸納整理,讓我們一起來看看吧。
開始之前先推薦一個(gè)非常厲害的Ai人工智能工具,一鍵生成原創(chuàng)文章、方案、文案、工作計(jì)劃、工作報(bào)告、論文、代碼、作文、做題和對(duì)話答疑等等
只需要輸入關(guān)鍵詞,就能返回你想要的內(nèi)容,越精準(zhǔn),寫出的就越詳細(xì),有微信小程序端、在線網(wǎng)頁版、PC客戶端
官網(wǎng):https://ai.de1919.com。
本文目錄:
如何用Python玩轉(zhuǎn)TF-IDF之尋找相似文章并生成摘要
應(yīng)用1:關(guān)鍵詞自動(dòng)生成
核心思想是對(duì)于某個(gè)文檔中的某個(gè)詞,計(jì)算其在這個(gè)文檔中的標(biāo)準(zhǔn)化TF值,然后計(jì)算這個(gè)詞在整個(gè)語料庫中的標(biāo)準(zhǔn)化IDF值。在這里,標(biāo)準(zhǔn)化是說對(duì)原始的計(jì)算公式進(jìn)行了一些變換以取得更好的衡量效果,并避免某些極端情況的出現(xiàn)。這個(gè)詞的TF-IDF值便等于TF*IDF。對(duì)于這個(gè)文檔中的所有詞計(jì)算它們的TF-IDF值,并按照由高到低的順序進(jìn)行排序,由此我們便可以提取我們想要的數(shù)量的關(guān)鍵詞。
TF-IDF的優(yōu)點(diǎn)是快捷迅速,結(jié)果相對(duì)來說比較符合實(shí)際情況。缺點(diǎn)是當(dāng)一篇文檔中的兩個(gè)詞的IDF值相同的時(shí)候,出現(xiàn)次數(shù)少的那個(gè)詞有可能更為重要。再者,TF-IDF算法無法體現(xiàn)我詞的位置信息,出現(xiàn)位置靠前的詞與出現(xiàn)位置靠后的詞,都被視為重要性相同,這是不正確的。存在的解決辦法是對(duì)文章的第一段和每段的第一句話給予比較大的權(quán)重。
應(yīng)用2:計(jì)算文本相似度
明白了對(duì)于每個(gè)詞,如何計(jì)算它的TF-IDF值。那么計(jì)算文本相似度也輕而易舉。我們已經(jīng)計(jì)算了文章中每個(gè)詞的TF-IDF值,那么我們便可以將文章表征為詞的TF-IDF數(shù)值向量。要計(jì)算兩個(gè)文本的相似度,只需要計(jì)算余弦即可,余弦值越大,兩個(gè)文本便越相似。
應(yīng)用3:自動(dòng)摘要
2007年,美國學(xué)者的論文<A Survey on Automatic Text Summarization>總結(jié)了目前的自動(dòng)摘要算法,其中很重要的一種就是詞頻統(tǒng)計(jì)。這種方法最早出自1958年IBM公司一位科學(xué)家的論文<The Automatic Creation of Literature Abstracts>。這位科學(xué)家認(rèn)為,文章的信息都包含在句子中,有的句子包含的信息多,有的句子包含的信息少。自動(dòng)摘要就是找出那些包含信息最多的句子。那么句子的信息量怎么衡量呢?論文中采用了關(guān)鍵詞來衡量。如果包含的關(guān)鍵詞越多,就說明這個(gè)句子越重要,這位科學(xué)家提出用Cluster的來表示關(guān)鍵詞的聚集。所謂簇,就是包含多個(gè)關(guān)鍵詞的句子片段。
以第一個(gè)圖為例,其中的cluster一共有7個(gè)詞,其中4個(gè)是關(guān)鍵詞。因此它的重要性分值就等于(4*4)/7=2.3。然后,找出包含cluster重要性分值最高的句子(比如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。這種算法后來被簡化,不再區(qū)分cluster,只考慮句子包含的關(guān)鍵詞。偽代碼如下。
Summarizer(originalText, maxSummarySize):// 計(jì)算文本的詞頻,生成一個(gè)列表,比如[(10,'the'), (3,'language'), (8,'code')...]
wordFrequences = getWordCounts(originalText)
// 過濾掉停用詞,列表變成[(3, 'language'), (8, 'code')...]
contentWordFrequences = filtStopWords(wordFrequences)
// 按照詞頻的大小進(jìn)行排序,形成的列表為['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)。
python制作偽原創(chuàng)文章?
開發(fā)環(huán)境簡介:python版本我們使用3.5,操作系統(tǒng)win7,
要使用的模塊:
1.wxpython桌面圖形擴(kuò)展。安裝方法使用pip安裝命令:pipinstall-UwxPython
2、請(qǐng)求,re,hashlib,時(shí)間
讓我們開始吧:
第一步是創(chuàng)建具有以下效果的界面:
創(chuàng)建接口的代碼:
App = wx.app () win = wx.frame(無,title = "(在此填寫軟件標(biāo)題)"。編碼(' utf8 '),大小= (1200,800)) # size是默認(rèn)窗口大小,贏了。Show()可以根據(jù)您自己的需要進(jìn)行設(shè)置
#添加兩個(gè)文本框,位置和大小可以自己設(shè)置。這里我使用左右設(shè)計(jì)內(nèi)容1 = WX.textctrl (Win,POS = (5,5),size = (500,600),style = WX . te _ multiline | WX . te _ rich)內(nèi)容2 = WX.textctrl (Win,pos=(650,5),size=(500,600),style = WX。TE_MULTILINE|wx。TE_RICH)
# add function button load button = wx . button(贏,標(biāo)簽= '這是按鈕的標(biāo)題,請(qǐng)更改'。編碼(“utf8”),pos = (515,310),size = (120,40))
#為按鈕添加綁定事件,單擊按鈕執(zhí)行wyc函數(shù)加載按鈕。綁定(WX。EVT按鈕)。步驟2,定義WYC()函數(shù)的代碼截圖如下:
第三步:實(shí)現(xiàn)內(nèi)容1的偽原創(chuàng)。這里我使用百度翻譯的api界面。
界面鍵需要你自己應(yīng)用,當(dāng)然你也可以用我的。
Appid = 20160727000025884姚蜜= ' tznuzfwt 8qzv10dzuttc ' #百度翻譯密鑰
代碼截圖:
第四步:調(diào)用百度翻譯界面將原文內(nèi)容翻譯成中文(以增強(qiáng)偽原文效果),然后將返回的內(nèi)容再次調(diào)整到詞典段落,代碼如下
步驟5:包裝。將文件復(fù)制到exe。
這里我使用的是pyinstaller,一個(gè)可以直接使用pip安裝的工具
然后切換到。找到py文件,并執(zhí)行打包命令:pyinstaller-F-wxxx.py(注意:添加參數(shù)-w,運(yùn)行打包的exe文件后不會(huì)出現(xiàn)黑色窗口)
包完成后,可以在當(dāng)前目錄下的dist文件夾中看到生成的exe文件,并且它已經(jīng)完成。
操作效果如下:
生命太短暫,無法學(xué)習(xí)。
python 代碼生成器怎么用
生成器是一個(gè)包含了特殊關(guān)鍵字yield的函數(shù)。當(dāng)被調(diào)用的時(shí)候,生成器函數(shù)返回一個(gè)生成器。可以使用send,throw,close方法讓生成器和外界交互。生成器也是迭代器,但是它不僅僅是迭代器,擁有next方法并且行為和迭代器完全相同。所以生成器也可以用于python的循環(huán)中,
生成器如何使用?
首先看一個(gè)例子:
復(fù)制代碼 代碼如下:
#!/usr/bin/python
# -*- coding: utf-8 -*-
def flatten(nested):
for sublist in nested:
for element in sublist:
yield element
nested = [[1,2],[3,4],[5,6]]
for num in flatten(nested):
print num,
結(jié)果為1,2,3,4,5,6
遞歸生成器:
復(fù)制代碼 代碼如下:
#!/usr/bin/python
# -*- coding: utf-8 -*-
def flatten(nested):
try:
for sublist in nested:
for element in flatten(sublist):
yield element
except TypeError:
yield nested
for num in flatten([[1,2,3],2,4,[5,[6],7]]):
print num
結(jié)果為:1 2 3 2 4 5 6 7
讓我們一起來看看生成器的本質(zhì)
首先看下:
復(fù)制代碼 代碼如下:
#!/usr/bin/python
# -*- coding: utf-8 -*-
def simple_generator():
yield 1
print simple_generator
def repeater(value):
while True:
new = (yield value)
if new is not None: value = new
r = repeater(42)
print r.next()
print r.send('hello,world!')
結(jié)果為:
復(fù)制代碼 代碼如下:
<function simple_generator at 0x10c76f6e0>
42
hello,world!
可以看出:
1)生成器就是一函數(shù)
2)生成器具有next方法
3)生成器可以使用send 方法和外界交互。
以上就是關(guān)于Python文章文章生成器代碼相關(guān)問題的回答。希望能幫到你,如有更多相關(guān)問題,您也可以聯(lián)系我們的客服進(jìn)行咨詢,客服也會(huì)為您講解更多精彩的知識(shí)和內(nèi)容。
推薦閱讀:
用python做數(shù)據(jù)分析(bi數(shù)據(jù)分析工具有哪些)
杭州Python培訓(xùn)機(jī)構(gòu)(杭州python培訓(xùn)機(jī)構(gòu) 濱江)
廣場(chǎng)景觀設(shè)計(jì)說明文(景觀廣場(chǎng)設(shè)計(jì)說明范文600字)