-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathanalysis_vivek_py.py
More file actions
55 lines (34 loc) · 1.36 KB
/
Copy pathanalysis_vivek_py.py
File metadata and controls
55 lines (34 loc) · 1.36 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
from spacy import displacy
def firstLineQuote(text):
pattern_qp = r'\"(.*?)\"[@\-\w\s]+'
pattern_q = r'\"(.*?)\"'
r_qp = re.fullmatch(pattern_qp,text)
r_q = re.fullmatch(pattern_q, text)
if r_qp != None:
return 'personal_quote'
if r_q != None:
return 'quote'
return ''
def generateNER(text):
doc = NLP(text)
ners = []
for word in doc.ents:
if word.label_.lower() in ['event', 'fac', 'gpe', 'law', 'loc', 'money', 'norp', 'org', 'person', 'product', 'work_of_art']:
ners.append(word.label_.lower())
return ','.join(ners)
def analyzeText(text):
print("----------- Actual Text ------------")
print(text)
doc = NLP(text)
print("----------- Spacy render -----------")
displacy.render(doc,style="ent",jupyter=True)
print("----------- Spacy NERs -------------")
for word in doc.ents:
print(word.text,word.label_)
print("----------- POS tag ----------------")
# Token and Tag
for token in doc:
print(token, token.pos_)
nike_data['caption_cleaned'] = nike_data['caption'].apply(lambda x : wrangle(x))
nike_data['NER'] = nike_data['caption_cleaned'].apply(lambda x : generateNER(x))
nike_data['firstLineQuote'] = nike_data['caption_cleaned'].apply(lambda x : firstLineQuote(x.strip().split('\n')[0].strip()))