Znalazłem listę skupisk spółgłosek z następującym kodem:

list_2 = ['financial','disastrous','accuracy','important','numbers']
reg = r'[bdðfghjklmnprstvxþ]+'
d = []
largest = []
for w in list_2:
    d.append(re.findall(reg, str(w), re.IGNORECASE))
print(d)

[['f', 'n', 'n', 'l'], ['d', 's', 'str', 's'], ['r'], ['mp', 'rt ',' nt '], [' n ',' mb ',' rs ']]

Potrzebuję największej liczby spółgłosek dla każdego słowa do zaimportowania jako listy (krotek) do ramki danych pandy. Próbowałem różnych rzeczy, ale bezskutecznie.

2
Paul Richardson 19 grudzień 2019, 15:50
Krotka powinna mieć postać (słowo, int(największy klaster w słowie))
 – 
Paul Richardson
19 grudzień 2019, 15:52

3 odpowiedzi

To powinno dać ci int, którego szukasz:

def largest_cluster(cons_list):
    return max(len(c) for c in cons_list)

Następnie możesz uzyskać krotki przez:

tuples = [(w, largest_cluster(cons)) for w, cons in zip(list2, d)]
2
Simon Crane 19 grudzień 2019, 15:56

Działa dobrze, teraz możesz zaimportować go do pandy z etykietami kolumn. Miejmy nadzieję, że będzie dobrze.

0
Paul Richardson 19 grudzień 2019, 16:18

Jeśli słowo nie ma spółgłosek, otrzymuję ValueError: max () arg jest pustą sekwencją. Jak to naprawić?

0
Paul Richardson 19 grudzień 2019, 16:54