как эффективно кодировать последовательность слова в последовательность целых чисел - PullRequest
0 голосов
/ 22 декабря 2018

Предположим, у меня есть словарь: ['привет', 'как', 'есть', 'ты'].У меня есть корпус многих текстов, например: ['привет', 'как', 'как'].Есть ли эффективный способ кодирования этого текста в список целых чисел, например, если я назначу 'hello' = 1, 'how' = 2, 'are' = 3, 'you' = 4,тогда мой текст выше будет закодирован как [1,2,2].

Мой контекст: я должен закодировать корпус из около 150 000 текстов.Размер словарного запаса составляет около 200 000.В целом, каждый текст содержит около 200 слов.

Я пробовал следующий код, но он кажется неэффективным.Это займет около 2 секунд / текст, поэтому мне понадобится 8-9 часов, чтобы закончить.

tokens_to_index = [[vocabulary.index(word)+1 for word in text] for text in corpus]

Ответы [ 2 ]

0 голосов
/ 22 декабря 2018

попробуйте использовать словарь вместо

vocabulary = dict(zip(vocabulary, range(1, len(vocabulary)+1) )) def tokens_to_index(corpus): return [[vocabulary[word] for word in text] for text in corpus]

0 голосов
/ 22 декабря 2018

Я не уверен, но попробуйте словарь, вы можете использовать пары ключ: значение

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...