Извлекать слова из дерева - PullRequest
0 голосов
/ 08 июня 2018

Я работаю с рекурсивными нейронными сетями и должен использовать предварительно обученные вложения слов ПЕРЧАТКИ.Поскольку мой набор данных маленький, я не хочу использовать все вложения, только те, которые находятся в моем наборе данных.Текстовый файл перчаток выглядит следующим образом:

в пределах 0,099415 0,063893 -0,65517 -0,31035 -0,54867 -0,31378 -0,75248 0,11362 0,029626 -0,23832 0,054125 -0,6937 0,019753 -0,25373 0,112972 -0,1680,20010,20010,20010,20,20010,20,20,20,20,30,30 млн ударивать вдвое меньше0,15759 0,041711 0,39897 0,53711 0,058105 -0,8139 -0,39827 0,077777 0,2354 0,27001 3,6635 0,35466 0,81482 -1,1884 -0,29611 0,5244 -0,45087 0,13699 -0,93812 0,4332 -0,45985 0,13347 -0,06980,000,00 0700,00,00,00,00,00,00,20 0705,20 0,80 0705,20 0,010,30,30,20,20,20,05,30,00,30,05% (0 )7 025,05,00,00,00,20,00,00,20,00,20,20,30,30,30,30 0705,90,30,1010% ... 0,8019 0,70759 0,041711 0,39897 0,53711 0,058105 0,80 0900,00,00,00,0700,05,00,00,20,00,20,3000,30,20,40,30,30,3005,30 0405 Стоковое Фото прослужить0.083877 0,14873 -0,80328 -0,24779 -0,10944 -0,11647 -0,87871 -0,43654 0,015808 -0,61117 0,83698 0,39583 -0,1244 -0,36991 -0,43331 0,23538 0,14534 0,2862 0,74532 0,7003 0,00098344 -0,34758 -0,29388 0,17333 -0,51236 -0,35278 -1,2029 -1,1695 -0,61088 0,18471 3,0157 -0,67365-0,45001 -1,0056 0,034002 -0,026611 0,0097914 0,55304 -0,19343 0,44712 ​​-0,33502 -0,91209 0,19758 -0,035535 -0,77284 0,28167 -0,6852 -0,62592 -0,36489 -0,22197

1007 * миссия 1,9144 0,40923 -0,31422 -0,6443 0.55513 -0,81588 -0,766 0,18716 0,94453 -1,0715 0,52092 0,20347 -0,36264 -0,30487 -0,13143 0,5649 0,080574 0,16483 -0,25986 0,45458 -0,40467 -0,66128 -0,49532 0,7947 0,31973 -1,1424 0,097268 -0,48496 -0,17357 0,29176 2,7318 -0,073546 -1,7509 -0,86062 0,021347 -0,0093403 -0.006449 -0,27718 0,10547 -0,18159 -0,30741 -0,48023 0,40922 -1,2402 -0,476 0,30602 0,32634 0,62645 -0,91152 0,42901
1009 * связанный 0.23032 1,0919 -0,029497 0,749 -0,17768 0.22918 0,25437 -0,15044 -0,38591 -0,35935 0,42707 0,056076 -0,35789 0,35419 -0,3842-1,0055 -0,15932 0,45716 0,25288 0,16926 0,0078635 -0,031715 0,90977 0,36871 0,04203 -0,81182 -0,81018 -0,40931 -0,2312 2,6289 0,50252 0,87378 -0,57009 -1,6698 -0,13101 0,28056 0,040286 -0,12814 0,23653 1,2403 0,29779 0,94279 0,96692 -0,17155 -0,057406 -0,055877 -0,48754 0,25528 0,12889 0,10638

Входные данные (текстовый файл) представлены в виде дерева следующим образом:

(3 (2 (2 The) (2 Rock)) (4 (3 (2 есть) (4 (2 предназначено) (2 (2 (2 (2 (2)to) (2 (2 be) (2 (2 the) (2 (2 21-й) (2 (2 (2 Century) (2-е))) (2 (3 новых) (2 (2 ``) (2 Conan)))))))) (2 '')) (2 а)) (3 (2 та) (3 (2 он) (3 (2 х) (3 (2 х)) (3 (2 до)(4 (3 (2 делают) (3 (3 (2 a) (3 всплеска)) (2 (2 даже) (3 больше)))) (2 (2 больше) (2 (2 (2 (2 (1)(2 Арнольд) (2 Шварценеггер)) (2,)) (2 (2 Жан-Клод) (2 (2 Ван) (2 Дамм)))) (2 или)) (2 (2 Стивен) (2 Сигал))))))))))))) (2.)))

(4 (4 (4 (2)) (4 (3 великолепно) (3 (2 подробно) (2 продолжения)))) (2 (2 (2 из) (2 ``)) (2 (2 The) (2 (2 (2 Lord) (2 (2 of) (2 (2 the) (2 Кольца))))(2 (2 '') (2 трилогия)))))) (2 (3 (2 (2 есть) (2 (2 так) (2 огромных))) (2 (2)) (3 (2 (2)(2 a) (2 колонка)) (2 (2 из) (2 слова))) (2 (2 (2 (2 могут) (1 нет)) (3 соответственно)) (2 (2 описания) (2 (3 (2 (2 соавтора / режиссера) (2 (2 Питера) (3 (2 Джексона) (2-е)))) (3 (2 дополнено) (2 видения))) (2 (2 из) (2 (2 (2 JRR) (2 (2 Толкина) (2-е))) (2 Средиземье))))))))) (2.)))

ЧтоЯ хочу в качестве вывода иметь новый текстовый файл, которыйсодержит вложения только для слов в моем входном текстовом файле.Это означает, что извлекайте слова из входного файла, сопоставляйте их в файле перчаток и сохраняйте только те строки файла перчаток в новом файле, которые соответствуют словам.

Я попытался сделать это с помощью awk, grep, pythonно я не могу прийти к единому решению.Любая помощь приветствуется.Это первый раз, когда я задаю любой вопрос, пожалуйста, исправьте меня, если есть какая-либо ошибка.

Что я пытался: Если я получаю список слов из файла дерева, тогда я могу использовать

'grep -F -x -f word_list.txt glove.6B.50d.txt > final.txt'

Чтобы получить список слов, я попробовал следующее с кодом Python:

import re
words = re.compile(r'([A-Za-z])')
file = open('tree.txt','r')
text = file.read()
a = [x for x in text if x in set(words)]
file.close()

Но выдает ошибку

Traceback (most recent call last):
File "get_words.py", line 7, in <module>
a = [x for x in text if x in set(words)]
TypeError: '_sre.SRE_Pattern' object is not iterable

Также попытался извлечь часть с помощью awk, посмотрев онлайн, но ничего не могу понять.

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