【问题标题】:compute the word coverage for the given fileid associated with text corpus inagurual using nltk使用 nltk 计算与文本语​​料库关联的给定 fileid 的单词覆盖率
【发布时间】:2020-07-08 07:00:39
【问题描述】:

我已经尝试了下面的代码。#!/bin/python3

import math
import os
import random
import re
import sys
import zipfile
import nltk


#
# Complete the 'accessTextCorpora' function below.
#
# The function accepts following parameters:
#  1. STRING fileid
#  2. STRING word
#
from nltk.corpus import inaugural
def accessTextCorpora(fileid, word):
    for fileid in inaugural.fileids():
        total_words = len(inaugural.words(fileid))
        total_unique_words = len(set(inaugural.words(fileid)))
        wordcoverage  = int(total_words / total_unique_words)
        ed_words = [word for word in set(inaugural.words(fileid)) if word.endswith('ed')]
        textfreq2 = [word.lower() for word in inaugural.words(fileid) if word.isalpha()]
        textfreq = nltk.FreqDist(textfreq2)
        wordfreq = textfreq[word]
        return wordcoverage, ed_words, wordfreq

它只通过了一个测试用例。其余所有测试用例显示相同的结果。能否请您建议我需要更改的内容。

这些是输出。

TestCase 0:

Input (stdin)
Run as Custom Input
|
Download
1789-Washington.txt
government

您的输出(标准输出) 2 ['联合','完成','解决','高级','受影响','分配','组装','唤醒','调用','提交','比较','考虑','咨询的”、“考虑的”、“委托的”、“离职的”、“派生的”、“杰出的”、“受雇的”、“扩大的”、“委托的”、“建立的”、“示范的”、“预期的”、“有经验的” , '填充', '强迫', '强化', '引导', '尊崇', '传授', '包括', '设立', '判断', '有限', '受命', '起源', '缓和的”、“说服的”、“放置的”、“高兴的”、“生产的”、“提升的”、“接收的”、“呈现的”、“修复的”、“需要的”、“结果的”、“神圣的”、“选定的” , '赌注', '提交', '召唤', '压制', '动摇', '传送', '团结', '无与伦比', '未实践', '未尝试', '敦促'] 8

预期输出 下载 2 ['联合','完成','解决','高级','受影响','分配','组装','唤醒','调用','提交','比较','考虑','咨询的”、“考虑的”、“委托的”、“离职的”、“派生的”、“杰出的”、“受雇的”、“扩大的”、“委托的”、“建立的”、“示范的”、“预期的”、“有经验的” , '填充', '强迫', '强化', '引导', '尊崇', '传授', '包括', '设立', '判断', '有限', '受命', '起源', '缓和的”、“说服的”、“放置的”、“高兴的”、“生产的”、“提升的”、“接收的”、“呈现的”、“修复的”、“需要的”、“结果的”、“神圣的”、“选定的” , '赌注', '提交', '召唤', '压制', '动摇', '传送', '团结', '无与伦比', '未实践', '未尝试', '敦促'] 8

测试用例1:

输入(标准输入) 作为自定义输入运行 |

1793-Washington.txt 我

您的输出(标准输出) 2 ['联合','完成','解决','高级','受影响','分配','组装','唤醒','调用','提交','比较','考虑','咨询的”、“考虑的”、“委托的”、“离职的”、“派生的”、“杰出的”、“受雇的”、“扩大的”、“委托的”、“建立的”、“示范的”、“预期的”、“有经验的” , '填充', '强迫', '强化', '引导', '尊敬', '传授', '包括', '设立', '判断', '有限', '受命', '起源', '缓和的”、“说服的”、“放置的”、“高兴的”、“生产的”、“提升的”、“接收的”、“呈现的”、“修复的”、“需要的”、“结果的”、“神圣的”、“选定的” , '赌注', '提交', '召唤', '压制', '动摇', '传送', '团结', '无与伦比', '未实践', '未尝试', '敦促'] 23

预期输出

1 ['叫','杰出','安置','团结','违反'] 6

【问题讨论】:

    标签: python text nltk corpus calculated-field


    【解决方案1】:

    删除“for”循环,因为不需要循环。该函数具有将被计算的参数。

    【讨论】:

      【解决方案2】:

      在最初的 fileid 中用于 fileidi,因为它读取所有文件而不是只读取一个。

      【讨论】:

      • 他做错了什么?
      【解决方案3】:
      1. 请不要使用 for 循环,并且已经提供了 fileid。
      2. 对于 ed_words,使用 set 获取唯一词。
          import math
          import os
          import random
          import re
          import sys
          import zipfile
          import nltk
      
          from nltk.corpus import inaugural
          def accessTextCorpora(fileid, word):
              # Write your code here
              file_words = inaugural.words(fileid)
              wordcoverage = int(len(file_words)/len(set(file_words)))
              ed_words = [words for words in set(file_words) if words.endswith('ed')]
              textfreq2 = [word.lower() for word in file_words if word.isalpha()]
              textfreq = nltk.FreqDist(textfreq2)
              wordfreq = textfreq[word]
          
              return wordcoverage, ed_words, wordfreq
      

      谢谢。

      【讨论】:

        猜你喜欢
        • 2020-03-24
        • 2016-06-19
        • 1970-01-01
        • 2022-01-21
        • 2019-07-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多