Ich habe eine Textdatei, aus der ich extrahieren muss, auf welche Rolle die Leute arbeiten. „Mechanical Engineer“, „Software-Entwickler“ usw. Ich habe NLTK verwendet, um diesen mit grammer zu extrahieren wiejob role aus Textdaten
grammer= r"""
NP: {<NN.*|JJ>*<NN.*>} """
das Ergebnis ich bin immer gut ist, aber immer noch für wenig documnets Junk kommt. Für diese Zeilen möchte ich Reguläre Ausdrücke anwenden.
meine Beispieltexte sind so.
- "Ich bin Softwareentwicklung Ingenieur in Microsoft"
- "Ich bin Maschinenbauingenieur mit 10 Jahren Erfahrung"
, was ich will, werde ich zwei oder drei Worte, bevor "Engineer" extrahieren . Ich bin mit regulären Ausdrücken wie,
regex=re.compile('|'.join([r'(?:\S+\s)?\S*[eE]ngineer']))
aber, extrahiert sie nur ein Wort vor dem bestimmten Wort. Wie man es macht, um zwei oder mehr Wörter zu extrahieren.
Ich habe versucht {2-3} anstelle von "?" im Ausdruck. aber ich bekomme kein gewünschtes Ergebnis.
Ist meine Vorgehensweise korrekt? oder ein anderer Ansatz, um diese spezifische Phrase in besserer Weise zu extrahieren?
wenn Sie extrahieren zwei Wörter zweiten Beispiel erhalten begonnen wird 'am mechanica' bekommen Ich Ingenieur ... ist das ok? – rock321987
check ** [this] (https://regex101.com/r/xR6eU5/1#pcre) ** – rock321987
das ist, was mein Problem ist. Ich möchte keine überflüssigen Wörter extrahieren. Es ist, wo ich stecke., Aber irgendwie kann ich Wörter wie "bin" ausschließen, bevor ich reDEX anwende. – Bhimasen