Ich brauche Hilfe bei der Verarbeitung unstrukturierter Daten von Day-Trading/Swing-Trading/Anlageempfehlungen. Ich habe die unstrukturierten Daten in Form von CSV
.Verarbeitung natürlicher Sprache - Extrahieren von Daten
Im Folgenden sind drei Beispiele Absätze, aus denen Daten extrahiert werden muss:
Chandan Taparia von Anand Rathi hat einen Buy Anruf auf Coal India Ltd. mit einem intra-dayKursziel von Rs 338. Der aktuelle Markt Preis von Coal India Ltd. ist 325.15. Chandan Taparia empfohlen zu halten Stop-Loss bei Rs 318.
Kotak Securities Limited hat ein Buy Anruf auf Engineers India Ltd. mit einem Kursziel von Rs 335 .Der aktuellen Marktpreis von Engineers India Ltd. ist Rs 266,05 Der Analyst gab ein Jahr für Ingenieure India Ltd Preis, um das definierte Ziel zu erreichen. Engineers India verfügt über einen gesunden Marktanteil von im Segment Consulting für Kohlenwasserstoffe. Es genießt eine produktive Beziehung mit einigen der großen Öl & Gasunternehmen wie HPCL, BPCL, ONGC und IOC. Das Unternehmen ist gut positioniert, um von einer Erholung der Infrastrukturausgaben im Kohlenwasserstoffsektor zu profitieren.
Der unabhängige Analyst Kunal Bothra hat einen Verkaufsanruf auf Ceat Ltd. mit einem Kursziel von Rs 1150 .Der aktuellen Marktpreis von Ceat Ltd. ist Rs 1.199,6 Die Zeitperiode vom Analytiker gegeben ist 1 -3 Tage , wenn Ceat Ltd. Preis das definierte Ziel erreichen kann. Kunal Bothra beibehalten Stop Loss bei Rs 1240.
Es ist eine Herausforderung 4 Informationen aus den Absätzen Extrahieren: jede Empfehlung ist anders gerahmt, aber im Wesentlichen hat
- Zielpreis
- Stop-Loss-Preis
- Aktuelle Preis.
- Dauer
und nicht notwendigerweise alle Informationen werden in allen verfügbar sein - wird jede Empfehlung haben atleast Zielpreis.
Ich habe versucht, reguläre Ausdrücke zu verwenden, aber nicht sehr erfolgreich, kann mir jemand Anleitung, wie diese Informationen extrahiert werden können nltk
?
-Code Ich habe bisher in den Daten Reinigung:
import pandas as pd
import re
#etanalysis_final.csv has 4 columns with
#0th Column having data time
#1st Column having a simple hint like 'Sell Ceat Ltd. target Rs 1150 : Kunal Bothra,Sell Ceat Ltd. at a price target of Rs 1150 and a stoploss at Rs 1240 from entry point', not all the hints are same, I can rely on it for recommender, Buy or Sell, which stock.
#4th column has the detailed recommendation given.
df = pd.read_csv('etanalysis_final.csv',encoding='ISO-8859-1')
df.DATE = pd.to_datetime(df.DATE)
df.dropna(inplace=True)
df['RECBY'] = df['C1'].apply(lambda x: re.split(':|\x96',x)[-1].strip())
df['ACT'] = df['C1'].apply(lambda x: x.split()[0].strip())
df['STK'] = df['C1'].apply(lambda x: re.split('\.|\,|:| target| has| and|Buy|Sell| with',x)[1])
#Getting the target price - not always correct
df['TGT'] = df['C4'].apply(lambda x: re.findall('\d+.', x)[0])
#Getting the stop loss price - not always correct
df['STL'] = df['C4'].apply(lambda x: re.findall('\d+.\d+', x)[-1])
Sie tun viele Regexes für einen einfachen 'find (" Zielpreis von Rs (\ d +) ")' –
Nicht immer ist der Zielpreis als 'Zielpreis von Rs' manchmal als 'Ziel 500 verfügbar 'manchmal mögen' 500 als Ziel 'usw. haben. – Abbas
OK, aber nicht in den Daten, die Sie zur Verfügung stellten ... Anyways, ist natürliche Sprachverarbeitung ziemlich schwierig, recht zu erhalten. Und es scheint nicht, dass du es wirklich versucht hast. –