Как заменить все строковые элементы в Python? - PullRequest
0 голосов
/ 08 ноября 2019

Я новичок в НЛП и попытался решить часть речи taggge. У меня есть предложение с его частью речи, и я хочу написать в форме ('word', 'pos_tag') всего предложения в одной строке.

1. aImIroawi/ADJ TIOIna/N ::/PUN
2. qIdImi/PRE bIzuHI/ADJ OametatI/N "/PUN aImIroawi/ADJ sInIkIlIna/N bIganEnI/N 
3. weyI/CON IkeyI/ADJ menafIsIti/N iyu/V_AUX zImexII/V_REL "/PUN zIbIlI/V_REL 4. gIguyI/ADJ ameleKaKIta/N neyIru/V_GER ::/PUN

это данные, которые яесть

for line in corpus:
    lene =line.split()
    sentence.append(lene)
    #print(sentence)
    #print (lene)
    for word in lene:
            w,tag = word.split('/')
            words.append(w)
            tags.append(tag)
#print(len(lene)) 
for line in corpus:
    onesentence=line.split()
    print(len(onesentence))
    for elem in onesentence:
        for i in range(len(onesentence)):
            elem = words[i],tags[i]
            print(elem)

('qIdImi', 'PRE')
('bIzuHI', 'ADJ')
('OametatI', 'N')
('"', 'PUN')
('aImIroawi', 'ADJ')
('sInIkIlIna', 'N')
('bIganEnI', 'N')
('weyI', 'CON')
('IkeyI', 'ADJ')

В приведенном выше примере это результат, который я получил, но я хочу написать все слова с соответствующим положением для одного предложения в списке в массиве. как

[ [('aImIroawi', 'ADJ'), ('TIOIna','N'), ('::','PUN')],[('qIdImi','PRE'), ('bIzuHI','ADJ'),('OametatI','N'), .....]]

1 Ответ

0 голосов
/ 08 ноября 2019

Вы можете добиться того же, используя list comprehension

# Input - Just to divide your data into 3 lines
data = """aImIroawi/ADJ TIOIna/N ::/PUN
qIdImi/PRE bIzuHI/ADJ OametatI/N "/PUN aImIroawi/ADJ sInIkIlIna/N bIganEnI/N 
weyI/CON IkeyI/ADJ menafIsIti/N iyu/V_AUX zImexII/V_REL "/PUN zIbIlI/V_REL 4. gIguyI/ADJ ameleKaKIta/N neyIru/V_GER ::/PUN"""

# I have splitted the data with `\n` for getting each line, then with `space` to get
# each word and added it to a list and inside the list I splitted the data using `/`
# to get each word inside a tuple
res = [[tuple(i.split("/")) for i in line.split(" ")] for line in data.split("\n")]
print (res)

# Result
# [[('aImIroawi', 'ADJ'), ('TIOIna', 'N'), ('::', 'PUN')], [('qIdImi', 'PRE'), ('bIzuHI', 'ADJ'), ('OametatI', 'N'), ('"', 'PUN'), ('aImIroawi', 'ADJ'), ('sInIkIlIna', 'N'), ('bIganEnI', 'N'), ('',)], [('weyI', 'CON'), ('IkeyI', 'ADJ'), ('menafIsIti', 'N'), ('iyu', 'V_AUX'), ('zImexII', 'V_REL'), ('"', 'PUN'), ('zIbIlI', 'V_REL'), ('4.',), ('gIguyI', 'ADJ'), ('ameleKaKIta', 'N'), ('neyIru', 'V_GER'), ('::', 'PUN')]]

Надеюсь, это поможет и будет иметь значение!

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