首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AttributeError:“textChunker”对象没有特性“”print_chunks“”

AttributeError:“textChunker”对象没有特性“”print_chunks“”
EN

Stack Overflow用户
提问于 2018-06-03 18:52:42
回答 1查看 199关注 0票数 0

当我运行下面的代码时,它给出了以下错误:

代码语言:javascript
复制
printchunks = text_Chunker.print_chunks(input_data,chunk_size)
AttributeError: 'textChunker' object has no attribute 'print_chunks'

为什么它会给我这个错误?

这是我的代码。它有一个textChunker类,我在main函数中调用它。

为什么没有定义函数print_chunks

代码语言:javascript
复制
import numpy as np
from nltk.corpus import brown

# Split the input text into chunks, where
# each chunk contains N words
class textChunker:

    def __init__(self, input_data='', chunk_size=0):

        self.input_data = input_data
        self.chunk_size = chunk_size

    def chunker(self,input_data, N):
        input_words = input_data.split(' ')
        output = []

        cur_chunk = []
        count = 0
        for word in input_words:
            cur_chunk.append(word)
            count += 1
            if count == N:
                output.append(' '.join(cur_chunk))
                count, cur_chunk = 0, []

        output.append(' '.join(cur_chunk))

        return output

        def print_chunks(self,input_data,chunk_size):
            import chunker
            chunks = chunker(input_data, chunk_size)
            print('\nNumber of text chunks =', len(chunks), '\n')
            for i, chunk in enumerate(chunks):
                print('Chunk', i + 1, '==>', chunk[:50])

if __name__=='__main__':

    input_data = ' '.join(brown.words()[:12000])
    chunk_size = 700

    text_Chunker=textChunker()
    printchunks =text_Chunker.print_chunks(input_data,chunk_size)
EN

回答 1

Stack Overflow用户

发布于 2018-06-03 19:08:03

您需要取消print_chunks函数的缩进,以便它与textChunker类中的其他函数保持一致。

编辑:为了使代码正常工作,请求者进行了除取消缩进之外的其他编辑(请参阅编辑历史记录)。

试试这个:

代码语言:javascript
复制
import numpy as np
from nltk.corpus import brown

# Split the input text into chunks, where
# each chunk contains N words
class textChunker:

    def __init__(self, input_data='', chunk_size=0):

        self.input_data = input_data
        self.chunk_size = chunk_size

    def chunker(self,input_data, N):
        input_words = input_data.split(' ')
        output = []

        cur_chunk = []
        count = 0
        for word in input_words:
            cur_chunk.append(word)
            count += 1
            if count == N:
                output.append(' '.join(cur_chunk))
                count, cur_chunk = 0, []

        output.append(' '.join(cur_chunk))

        return output

    def print_chunks(self,input_data,chunk_size):
        import textChunker
        chunks = self.chunker(input_data, chunk_size)
        print('\nNumber of text chunks =', len(chunks), '\n')
        for i, chunk in enumerate(chunks):
            print('Chunk', i + 1, '==>', chunk[:50])

if __name__=='__main__':

    input_data = ' '.join(brown.words()[:12000])
    chunk_size = 700

    text_Chunker=textChunker()
    printchunks =text_Chunker.print_chunks(input_data,chunk_size)
    print(sent_tokenize(input_data))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50665581

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档