Ich bin textacy
's pos_regex_matches
Methode, um bestimmte Stücke von Text in Sätzen zu finden.Passende PoS Tags mit bestimmten Text mit `testacy.extract.pos_regex_matches (...)`
Zum Beispiel, wenn ich den Text habe: Huey, Dewey, and Louie are triplet cartoon characters.
, würde ich gerne feststellen, dass Huey, Dewey, and Louie
eine Aufzählung ist.
so zu tun, verwende ich den folgenden Code (auf testacy 0.3.4
, die Version zum Zeitpunkt des Schreibens verfügbar):
import textacy
sentence = 'Huey, Dewey, and Louie are triplet cartoon characters.'
pattern = r'<PROPN>+ (<PUNCT|CCONJ> <PUNCT|CCONJ>? <PROPN>+)*'
doc = textacy.Doc(sentence, lang='en')
lists = textacy.extract.pos_regex_matches(doc, pattern)
for list in lists:
print(list.text)
die druckt:
Huey, Dewey, and Louie
Allerdings, wenn ich etwas haben, wie folgt aus:
sentence = 'Donald Duck - Disney'
dann die -
(Bindestrich) ist erkannt als <PUNCT>
und der ganze Satz wird als Liste erkannt - was nicht der Fall ist.
Gibt es eine Möglichkeit anzugeben, dass nur ,
und ;
für Listen <PUNCT>
gültig sind?
Ich habe nach einer Referenz über diese Regex-Sprache für passende PoS-Tags ohne Glück gesucht, kann jemand helfen? Danke im Voraus!
PS: Ich habe versucht, <PUNCT|CCONJ>
mit <[;,]|CCONJ>
, <;,|CCONJ>
, <[;,]|CCONJ>
, <PUNCT[;,]|CCONJ>
, <;|,|CCONJ>
und <';'|','|CCONJ>
wie in den Kommentaren vorgeschlagen zu ersetzen, aber es hat nicht funktioniert ...
Ersetzen Sie punct mit [,;] –