2013-09-18 6 views
1

У меня есть список документов, таких как:заменить все слова в большом списке

documents = [ 'this is document number 1', 
       'this is document number 2', 
       'this is document number 3', 
            ...]] 

и вектор около 200к слов: wordVector = ['word1', 'word2'.....'rare_word']

где редкое слово является последним словом в векторе. Кроме того, соответствующее каждому слову в wordVector, у меня есть вектор 1x2 (так что массив Nx2 для полного wordVec), которые являются представлением этих слов.

Теперь я хочу, чтобы заменить все слова в «документе» их соответствующих представления с использованием wordVector и Nx2 массива и, если слово не найдено, или документ пуст, он назначается последние значениями из NX2 массив. Прямо сейчас я использую петли и нахожу слово в слове Vec, а затем заменяю их. Поскольку набор данных огромен, процесс занимает много времени. Есть ли быстрый/питонический способ сделать это?

+4

Вы должны обновить свой вопрос и включить код, который вы используете прямо сейчас. –

+0

Я использую цикл, который проходит через все документы и другой цикл внутри него, который находит, существует ли слово в «wordVector», и если он существует, он находит соответствующее значение из массива Nx2, если он не использует только последние значения –

ответ

3

Сделать это словарь и попробовать что-то вроде:

replacedWord = wordDict.get(currentWord, 'rare_word') 

Это вы должны получить запись замены соответствия из словаря и будет использовать «rare_word», если нет такой записи.

Смежные вопросы