【python二级】红楼梦
題目描述
文本文件“紅樓夢. txt”中包含了《紅樓夢》小說前20章內容,“ 停用詞. txt”包含了需要排除的詞語。請修改模板,實現以下功能。????????????????????????????????????????????????????????????????????????????????????????????????
1.對“紅樓夢. txt”中文本進行分詞,并對人物名稱進行歸-化處理,僅歸一化以下內容:????????????????????????????????????????????????????????????????????????????????????????????????
鳳姐、鳳姐兒、鳳丫頭歸-為鳳姐
寶玉、二爺、寶二爺歸-為寶玉
黛玉、顰兒、林妹妹、黛玉道歸-為黛玉
寶釵、寶丫頭歸一為寶釵
賈母、老祖宗歸-為賈母
襲人、襲人道歸一為襲人
賈政、賈政道歸一為賈政
賈鏈、璉二爺歸一為賈璉
2.不統計“停用詞.txt"文件中包含詞語的詞頻(名字必須大于一個字)。????????????????????????????????????????????????????????????????????????????????????????????????
3.提取出場次數不少于40次的人物名稱,將人物名稱及其出場次教按照遞減排序,保存到result.csv文件中,出場次數相同的.則按照人物名稱的字符順序排序。????????????????????????????????????????????????????????????????????????????????????????????????
輸出示例????????????????????????????????????????????????????????????????????????????????????????????????
寶玉,597
鳳姐,296
一個,179
如今,132
黛玉,113
一面,112
簡要說明:
這道題實際上是完成兩個事情:1、把紅樓夢文章里包含停用詞的內容刪去;2、統計人物出場次數,同時注意一個人物在書里會有很多叫法,然后把統計出的內容寫在一個csv文件里。
實現第一步要做的事:1、把紅樓夢用結巴分詞分好放進名為txt列表里 2、用f.read().splitlines()方法,把停用詞轉化為一個列表,每個元素是一個停用詞。3、用列表的自定義方式,對txt每一個元素x遍歷,如果它不在停用詞列表里,就放入新的列表txt0,這樣就完成了停用詞的刪去。
實現第二步要做的事:定義一個空字典,然后遍歷前面做好的txt0,如果元素長度為1,證明是標點或者空格,直接用continue跳過這個元素。如果是我們想要的人名,就作一些分類,并把rword改成歸一的那個名字。然后結尾用count[rword]=count.get(rword,0)+1,去把名字和次數分別作為鍵和值放進這個字典里。
然后是排序(常見的列表排序方法),輸出。key,value=i,就是把每個元組的第一個第二個元素分別賦值給key和value,然后是對value值的判斷,大于等于40就輸出。注意寫文件的時候,不要漏掉逗號以及’\n’。print()函數由于自帶換行,就不用加’\n’。
總結
以上是生活随笔為你收集整理的【python二级】红楼梦的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Lycn 2013 with SQL A
- 下一篇: GPS卫星坐标用计算机计算,GPS卫星位