nnnnuu 2023-07-17 17:49 采纳率: 26.9%
浏览 9
已结题

词表到向量的转化对于加粗部分的错误

def loadDateSet():
    postingList=[['my','dog','has','flea','problems','help','please'],
                 ['maybe','not','take','him','to','dog','park','stupid'],
                 ['my','dalmation','is','so','cute','I','love','him'],
                 ['stop','posting','stupid','worthless','garbage'],
                 ['mr','licks','ate','my','steak','how','to','stop','him'],
                 ['quit','buying','worthless','dog','food','stupid']]
    classVec=[0,1,0,1,0,1]
    return postingList,classVec
def createVocabList(dataSet):
   ** vocabSet=set([])
    for document in dataSet:
        vocabSet=vocabSet | set(document)
        return list(vocabSet)**
listOPosts,listClasses = bayes.loadDateSet()
myVocabList=bayes.createVocabList(listOPosts)

print(myVocabList)

img

  • 写回答

2条回答 默认 最新

  • 大师兄6668 新星创作者: python技术领域 2023-07-17 17:54
    关注

    缩进有点问题吧,另外,我根据gpt的回答,整理了一下,你看下是否可以解决问题:
    您提供的代码中,loadDateSet() 函数返回了一个包含文档列表 postingList 和类别向量 classVec 的元组。然后,createVocabList() 函数使用 dataSet 参数作为输入,并通过迭代文档列表来创建一个词汇表 vocabSet

    在您的代码中,createVocabList() 函数中标记为 ** 加粗的行 ** 是关键部分。该部分使用集合操作符 | 将每个文档中出现的单词添加到 vocabSet 中。最后,将 vocabSet 转换为列表并返回。

    以下是修正后的代码示例:

    def loadDataSet():
        postingList = [['my', 'dog', 'has', 'flea', 'problems', 'help', 'please'],
                     ['maybe', 'not', 'take', 'him', 'to', 'dog', 'park', 'stupid'],
                     ['my', 'dalmation', 'is', 'so', 'cute', 'I', 'love', 'him'],
                     ['stop', 'posting', 'stupid', 'worthless', 'garbage'],
                     ['mr', 'licks', 'ate', 'my', 'steak', 'how', 'to', 'stop', 'him'],
                     ['quit', 'buying', 'worthless', 'dog', 'food', 'stupid']]
        classVec = [0, 1, 0, 1, 0, 1]
        return postingList, classVec
    
    def createVocabList(dataSet):
        vocabSet = set([])
        for document in dataSet:
            vocabSet = vocabSet | set(document)
        return list(vocabSet)
    
    listOPosts, listClasses = loadDataSet()
    myVocabList = createVocabList(listOPosts)
    
    print(myVocabList)
    

    现在,myVocabList 将包含词汇表的列表,并打印输出结果。请注意,修正后的代码中,createVocabList() 函数的返回缩进已更正,以确保在循环结束后才返回词汇表。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 7月25日
  • 已采纳回答 7月17日
  • 创建了问题 7月17日