改善算法的运行时间

时间:2016-11-11 19:40:33

标签: python algorithm nltk

我正在研究数据挖掘和数据处理技术。我是通过我收集并存储在csv文件中的数据来做到这一点的。问题在于,这个文件非常大,到了令人惊讶的4万行文本。

渲染部分中的一些算法快速而敏捷,但是单词的正交校正部分是费力的。我正在使用NLTK包nltk.corpus import forest。 因此,当需要采取这一步骤时,我敢说它不会及时结束。

由此,我想知道是否有人可以帮我解决一个问题,我可以读取文件行,完成整个过程,将其保存到银行,然后从文件中读取另一行。因此,通过逐行阅读,每一行都进行处理。我认为这样我可以提高算法的性能。

Esteéomeucódigo:(请考虑代码工作所需的所有导入工作)

txtCorpus = []
dtype_dic= {'status_id': str, 'status_message' : str, 'status_published':str}
for csvfile in pd.read_csv('data/AracajuAgoraNoticias_facebook_statuses.csv',dtype=dtype_dic,encoding='utf-8',sep=',', header='infer',engine='c', chunksize=2):
    txtCorpus.append(csvfile)

def status_processing(txtCorpus):

    myCorpus = preprocessing.PreProcessing()
    myCorpus.text = str(txtCorpus)

    print "Doing the Initial Process..."
    myCorpus.initial_processing()
    print "Done."
    print "----------------------------"

    print ("StartingLexical Diversity...")
    myCorpus.lexical_diversity()
    print "Done"
    print "----------------------------"

    print "Removing Stopwords..."
    myCorpus.stopwords()
    print "Done"
    print "----------------------------"

    print "Lemmatization..."
    myCorpus.lemmatization()
    print "Feito"
    print "----------------------------"

    print "Correcting the words..."
    myCorpus.spell_correct()
    print "Done"
    print "----------------------------"

    print "Untokenizing..."
    word_final = myCorpus.untokenizing()
    print "Feito"
    print "----------------------------"

    print "Saving in DB...."

    try:
        db.myDB.insert(word_final, continue_on_error=True)
    except pymongo.errors.DuplicateKeyError:
        pass

    print "Insertion in the BB Completed. End of the Pre-Processing Process "


def main():
    status_processing(txtCorpus)

main()

我相信通过可视化代码,您可以更好地理解我上面解释的内容。我考虑做一个for,我在那里读了一行并在def status_processing(txtCorpus):传递了它,所以,我重复这个过程直到结束。但我无法达成解决方案。

0 个答案:

没有答案