Ускорение Spacy и экспорт CSV - PullRequest
0 голосов
/ 19 октября 2019

Требуется предложение для настройки приведенного ниже кода.

import sys
import pandas as pd
import spacy

#Spliting tokens using the Spacy
def parsetext(df):
    nlp = spacy.load("en_core_web_sm")
    parsed_tokens = []
    for index, row in df.iterrows():
        filtered_tokens=[]
        doc = nlp(str(row['Column1Text']))
        for word in doc:
            if word.is_stop==False:
                filtered_tokens.append(word)
        parsed_tokens.append(filtered_tokens)

    df['Tokens'] = parsed_tokens
    df['Processed'] = 0

# Main method point of entry | Read the excel and generate tokens
def main():
        df = pd.read_excel (sys.argv[1], sheet_name='Sheet1', header=None)
        df.columns = ["Column1Text","Column2Text","C3","C4","C5","C6","C7"]
        #Replace the Nan with empty values
        df["Column1Text"].fillna('',inplace=True)
        df["Column2Text"].fillna('',inplace=True)
        #Parse for tokens
        parsetext(df)
        export_csv = df[['Column1Text', 'Column2Text','Tokens','Processed']].to_csv(sys.path[0]+ r'\parsed_file.csv', index = None, header=True)

Метод parsetext (df) занимает 2-3 секунды для завершения

любое предложение ускорить ??

1 Ответ

0 голосов
/ 19 октября 2019

Должно быть быстрее извлекать тексты из кадра данных, используйте nlp.pipe(), чтобы тексты могли обрабатываться быстрее в пакетном режиме, а затем сохранять результаты обратно в кадре данных.

...