国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Python抓取歌詞自制FreeStyle

Pines_Cheng / 591人閱讀

摘要:故事的起因是上周六看中國(guó)好聲音一個(gè)周杰倫戰(zhàn)隊(duì)的學(xué)員用人工智能寫的歌詞,于是乎,我也有了這個(gè)想法,代碼的主題思路是看先生的文章,雖然最后不能寫出一首歌,但是押韻腳這事情分分鐘搞定了主題的思路,就是先抓取很多首歌曲的歌詞,利用分詞后,將分好的詞

故事的起因是上周六看《中國(guó)好聲音》,一個(gè)周杰倫戰(zhàn)隊(duì)的學(xué)員用人工智能寫的歌詞,于是乎,我也有了這個(gè)想法,代碼的主題思路是看Crossin先生的文章,雖然最后不能寫出一首歌,但是押韻腳這事情分分鐘搞定了

主題的思路,就是先抓取很多首歌曲的歌詞,利用jieba分詞后,將分好的詞按照押韻表進(jìn)行分類,最后匹配查詢就可以了

準(zhǔn)備一:押韻表

這個(gè)地方可以去網(wǎng)上搜押韻表

#引用各種需要的庫
import requests
import jieba
import re
from xpinyin import Pinyin
p = Pinyin()

RhymeIndex = [("1", ["a", "ia", "ua"]), ("2", ["ai", "uai"]), ("3", ["an", "ian", "uan"]),
              ("4", ["ang", "iang", "uang"]), ("5", ["ao", "iao"]), ("6", ["e", "o", "uo"]), ("7", ["ei", "ui"]),
              ("8", ["en", "in", "un"]), ("9", ["eng", "ing", "ong", "iong"]), ("10", ["er"]), ("11", ["i"]),
              ("12", ["ie", "ye"]), ("13", ["ou", "iu"]), ("14", ["u"]), ("16", ["ue"]), ("15", ["qu", "xu", "yu"])]

RhymeDct = {"ui": "7", "uan": "3", "ian": "3", "iu": "13", "en": "8", "ue": "16", "ing": "9", "a": "1", "ei": "7",
            "eng": "9", "uo": "6", "ye": "12", "in": "8", "ou": "13", "ao": "5", "uang": "4", "ong": "9", "ang": "4",
            "ai": "2", "ua": "1", "uai": "2", "an": "3", "iao": "5", "ia": "1", "ie": "12", "iong": "9", "i": "11",
            "er": "10", "e": "6", "u": "14", "un": "8", "iang": "4", "o": "6", "qu": "15", "xu": "15", "yu": "15"}
準(zhǔn)備二:分詞對(duì)應(yīng)押韻表編碼

分好的詞與押韻表對(duì)應(yīng)起來,舉個(gè)栗子,比如“沒有”對(duì)應(yīng)的是“7-13”,就等于你給每個(gè)詞都貼了一個(gè)標(biāo)簽,這樣你以后想搜索的時(shí)候,就可以根據(jù)標(biāo)簽找到這些詞了

def _analysis_words(words):
        word_py =p.get_pinyin((u"{}".format(words)))
        lst_words = word_py.split("-")
        r = []
        for i in lst_words:
            while True:
                if not i:
                    break
                token = RhymeDct.get(i, None)
                if token:
                    r.append(token)
                    break
                i = i[1:]
        if len(r) == len(words):
            return "-".join(r)
# print(_analysis_words("兄弟"))
第一步:爬蟲抓取歌詞信息

這個(gè)地方數(shù)據(jù)爬取的越多,肯定你的詞庫就越壯大,后面分詞也越高,我這里只爬取了3首歌曲的歌詞,并且最后是存儲(chǔ)到txt中,當(dāng)然,放數(shù)據(jù)庫里就更好了

def GetKeyword():
    #歌曲列表
    # url = "http://music.163.com/api/playlist/detail?id=808976784"
    # req = requests.get(url)
    # data = req.json()
    # print(data["result"]["tracks"] )
    # tracks =data["result"]["tracks"]  #歌曲列表
    tracks=["431795900","33850315","430053482"]
    #寫入記事本文件
    with open("keyword.txt","a") as f:
        f.write("[")
        for i in tracks:
            print(111)
            #歌詞
            # lrcurl = "http://music.163.com/api/song/lyric?os=pc&id="+str(i["id"])+"&lv=-1&kv=-1&tv=-1"
            lrcurl = "http://music.163.com/api/song/lyric?os=pc&id="+str(i)+"&lv=-1&kv=-1&tv=-1"
            lrcreq = requests.get(lrcurl)
            dt = lrcreq.json()
            lrc=re.sub(u"[.*?]", "", dt["lrc"]["lyric"])
            #jieba分詞
            seg_list = list(jieba.cut(lrc, cut_all=True))
            for i in seg_list:
                #加入判斷,只寫入2個(gè)字組成的詞
                if len(i)==2:
                    #寫入格式:{"7-13":"追求"}
                    if _analysis_words(i)!=None:
                        f.write("{""+_analysis_words(i)+"":""+i+""},")
        f.write("]")
        f.close()
       
第二步:調(diào)用分詞的方法
GetKeyword()
第三步:分析分詞后的txt
def Findkey(str):
    result={}
    with open("keyword.txt", "r") as f:
        # print(f.readlines())
        list=eval(f.readlines()[0])
        for item in list:
            if item.get(str):
                key=item.get(str)
                number=result.get(key)
                #如果一個(gè)詞出現(xiàn)多次,進(jìn)行次數(shù)累加,用來表示頻次
                if number !=None and number>=1:
                    result[key]=number+1
                else:
                    result.update({key:1})
        f.close()
        print(result) 
第四步:程序入口
key=input("請(qǐng)輸入關(guān)鍵詞:")
str=_analysis_words(key)
print("匹配押韻的詞:")
Findkey(str)
第五步:創(chuàng)作自己的FreeStyle
# hello 大家好,我的名字叫離島
# 沒事愛在博客寫寫,這感覺讓我愜愜
# 寫代碼不是男生的事,女生不是只能做測(cè)試
# 熱愛編碼,沒有辦法
# 他們都叫我是熱愛編碼的Coding女生

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/42173.html

相關(guān)文章

  • 零基礎(chǔ)如何學(xué)爬蟲技術(shù)

    摘要:楚江數(shù)據(jù)是專業(yè)的互聯(lián)網(wǎng)數(shù)據(jù)技術(shù)服務(wù),現(xiàn)整理出零基礎(chǔ)如何學(xué)爬蟲技術(shù)以供學(xué)習(xí),。本文來源知乎作者路人甲鏈接楚江數(shù)據(jù)提供網(wǎng)站數(shù)據(jù)采集和爬蟲軟件定制開發(fā)服務(wù),服務(wù)范圍涵蓋社交網(wǎng)絡(luò)電子商務(wù)分類信息學(xué)術(shù)研究等。 楚江數(shù)據(jù)是專業(yè)的互聯(lián)網(wǎng)數(shù)據(jù)技術(shù)服務(wù),現(xiàn)整理出零基礎(chǔ)如何學(xué)爬蟲技術(shù)以供學(xué)習(xí),http://www.chujiangdata.com。 第一:Python爬蟲學(xué)習(xí)系列教程(來源于某博主:htt...

    KunMinX 評(píng)論0 收藏0
  • 一起用python做個(gè)炫酷音樂播放器,想聽啥隨便搜!【V2.0升級(jí)版,含源碼及打包exe】

    摘要:自制一款炫酷音樂播放器,想聽啥隨便搜下面我們就介紹這個(gè)音樂播放器版本新加的部分功能制作過程。直接跳到文末獲取源碼及打包程序。雙擊列表頁面中某一首歌曲,即可實(shí)現(xiàn)音樂播放功能。 ...

    leap_frog 評(píng)論0 收藏0
  • 小白都懂的Python爬蟲之網(wǎng)易云音樂下載

    摘要:完整代碼如下正在下載根據(jù)網(wǎng)易云歌曲的直接下載歌曲上安裝爬取網(wǎng)易云歌曲源碼地址 首發(fā)知乎:https://zhuanlan.zhihu.com/p/... 目標(biāo) 偶然的一次機(jī)會(huì)聽到了房東的貓的《云煙成雨》,瞬間迷上了這慵懶的嗓音和學(xué)生氣的歌詞,然后一直去循環(huán)聽她們的歌。然后還特意去刷了動(dòng)漫《我是江小白》,好期待第二季... 我多想在見你,哪怕匆匆一眼就別離... 好了,不說廢話了。這次...

    SoapEye 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<