Ich habe einen Satz begrenzen: mit /NNP
TagWie Textextraktion bis bestimmten Zeichen mit regex und Python
text = "Alun-alun/NNP Jombang/NNP tepatnya/RB Depan/IN SMP/NNP 2/CDP Jombang/NNP Besok/NNP pagi/NN :/: :/: :/: Minggu/NNP"
Ich mag /IN
bis letztem Wort jedes Wort von Tag extrahieren.
Der Code so weit kann die Depan/IN SMP/NNP 2/CDP Jombang/NNP Besok/NNP pagi/NN :/: :/: :/: Minggu/NNP
extrahieren. Aber ich möchte, dass es aufhört, wenn der Code entweder /:
oder /IN
Tag erfüllt. Hier ist der Code so weit:
import re
def entityExtract(text):
# text = re.findall(r'([^\s/]*/IN\b[^/]*(?:/(?!IN\b)[^/]*)*/NNP\b)', text)
text = re.findall(r'([^\s/]*/IN\b[^/]*(?:/(?!IN\b)[^/]*)*/(?:NNP|CDP)\b)', text)
return text
text = "Alun-alun/NNP Jombang/NNP tepatnya/RB Depan/IN SMP/NNP 2/CDP Jombang/NNP Besok/NNP pagi/NN :/: :/: :/: Minggu/NNP"
extract = entityExtract(text)
print text
print extract
Ausgang:
['Depan/IN SMP/NNP 2/CDP Jombang/NNP Besok/NNP pagi/NN :/: :/: :/: Minggu/NNP']
Erwartetes Ergebnis ist:
['Depan/IN SMP/NNP 2/CDP Jombang/NNP Besok/NNP]
Was ist der beste Weg, es zu lösen?
Ihr erwartetes Ergebnis stimmt nicht mit Ihrer Problemdefinition überein. Sie sagen, dass Sie ein beliebiges Wort nach Tag/IN bis zu einem Wort mit/NNP-Tag extrahieren möchten. ''Depan/IN'' ist _nicht_ nach dem Tag'/IN' und sollte nicht enthalten sein. ''SMP/NNP'' ist ein Wort mit'/NNP'-Tag und sollte auch nicht enthalten sein. Die erwarteten Ergebnisse müssen eine leere Zeichenfolge sein. Bitte nochmal nachprüfen. – DyZ
@DYZ danke für die Korrektur, ich habe meine Frage behoben. Ich hoffe, dass alle meinen Standpunkt verstehen. – ytomo
Ich habe die Frage bearbeitet, um einige der Verwirrungen zu beheben, die noch existierten. Wenn es in Ordnung ist, akzeptiere Änderungen, thx! – kaza