"Zu welchem Satz ein Wort gehört" würde imho aber eher zu einem Mapping "Wort → {Satz Indizes}" passen. (Gegeben ein Wort → Suche Satz (Sätze))
Das könnte ich mir so vorstellen:
Code: Alles auswählen
from collections import defaultdict
words_to_phrases = defaultdict(set)
tokens = ['Hallo', 'wie', 'geht', 'es', 'euch', '?', 'Ich', 'habe', 'eine', 'Frage', 'an', 'euch', '.']
index = 1
for token_ in tokens:
if token_ in ('.?'):
index += 1
else:
words_to_phrases[token_].add(index)
> defaultdict(<type 'set'>, {'Hallo': set([1]), 'wie': set([1]), 'Ich': set([2]), 'euch': set([1, 2]), 'Frage': set([2]), 'an': set([2]), 'eine': set([2]), 'geht': set([1]), 'habe': set([2]), 'es': set([1])})
words_to_phrases["euch"]
> set([1, 2])
Wie man sieht habe ich das Beispiel mal um ein "euch" im zweiten Satz erweitert. Damit wird klar, dass Wörter in mehreren Sätzen vorkommen können. Über das Dictionary kann ich einfach auf das Wort zugreifen und auslesen, in welchen Sätzen es vorkommt.
Da ich die Satzzeichen auslassen wollte, habe ich die Logik im Schleifenrumpf umgedreht.