подсчет фразы в текстовом файле с использованием python - PullRequest
0 голосов
/ 17 февраля 2020

У меня есть множество смежных фраз, которые я ищу, чтобы проверить, существуют ли они в каждой строке файла. Если они это сделают, я считаю их появление. Я хочу посчитать фразу только один раз в строке. Если фраза встречается в одной строке несколько раз, они все равно должны учитываться только один раз для этой строки. Длина моего входного набора (это все два слова) имеет размер 800 000, и я ищу их во входном файле, который состоит из 12 тыс. Строк. Сейчас я пытаюсь сосчитать их, используя вложенные циклы for, что занимает более 2 часов (все еще ожидаю результатов). Должен быть эффективный, pythoni c способ делать вещи. Руководство очень ценится!

PS: Я бы хотел избежать какой-либо обработки естественного языка или подобных утилит и хотел бы научиться реализовывать его без таких пакетов.

Ниже приведен мой код

candidate_kst_wc = dict()
lines = open('xxxxxx.txt')
for line in lines:
    line = line.strip()   # remove carriage return and return the line as string 
    for elem in list(icandidate_kset): # input set with phrase like {x;y,a;b,y;x}
        phrase = elem.replace(';',' ') # get the phrase from list and replace the ; with space
        if phrase in line:
            candidate_kst_wc[elem] = candidate_kst_wc.get(elem,0) + 1 
...