как сопоставить одинаковые символы из списков в списке и экспортировать результаты отдельно - PullRequest
0 голосов
/ 03 июля 2018

ребята! Я получил список (final_word_list) и хотел бы сопоставить одинаковые символы из всех подсписков в списке с именем «text_under_directory» и экспортировать результат отдельно, показанный как рисунок здесь .

from nltk.tokenize import word_tokenize

final_word_list = ['zero', 'two', 'four', 'six', 'eight', 'ten', 'twelve', 'fourteen', 'sixteen']

texts_under_directory = [['one', 'two', 'three', 'four', 'five', 'six'], ['five', 'six', 'seven', 'eight', 'nine', 'ten'], ['eight', 'nine', 'ten', 'eleven', 'twelve', 'thirteen']]

# texts_under_directory[0] = ['one', 'two', 'three', 'four', 'five', 'six']
# texts_under_directory[1] = ['five', 'six', 'seven', 'eight', 'nine', 'ten']
# texts_under_directory[2] = ['eight', 'nine', 'ten', 'eleven', 'twelve', 'thirteen']

final_result = []

i = 0
while i < len(texts_under_directory):
    for b in texts_under_directory[i]:
        for a in final_word_list:
            if a == b:
                for x in word_tokenize(b):
                    final_result.append(x)

    print(sorted(set(final_result)))

    i += 1

Вывод:

['four', 'six', 'two']
['eight', 'four', 'six', 'ten', 'two']
['eight', 'four', 'six', 'ten', 'twelve', 'two']

Мой ожидаемый результат:

['four', 'six', 'two']
['eight', 'six', 'ten']
['eight' 'ten', 'twelve'] 

1 Ответ

0 голосов
/ 06 июля 2018

Хорошо, я нахожу ответ сам. Я просто оставляю это ниже.

from nltk.tokenize import word_tokenize

final_word_list = ['zero', 'two', 'four', 'six', 'eight', 'ten', 'twelve', 'fourteen', 'sixteen']

texts_under_directory = [['one', 'two', 'three', 'four', 'five', 'six'], ['five', 'six', 'seven', 'eight', 'nine', 'ten'], ['eight', 'nine', 'ten', 'eleven', 'twelve', 'thirteen']]

# texts_under_directory[0] = ['one', 'two', 'three', 'four', 'five', 'six']
# texts_under_directory[1] = ['five', 'six', 'seven', 'eight', 'nine', 'ten']
# texts_under_directory[2] = ['eight', 'nine', 'ten', 'eleven', 'twelve', 'thirteen']

n = 3
final_result = [[] for _ in range(n)]

i = 0
while i < len(texts_under_directory):
    for b in texts_under_directory[i]:
        for a in final_word_list:
            if a == b:
                for x in word_tokenize(b):
                    final_result[i].append(x)

    print(sorted(set(final_result[i])))

    i += 1

Выход

['four', 'six', 'two']
['eight', 'six', 'ten']
['eight', 'ten', 'twelve']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...