加入收藏 | 设为首页 | 会员中心 | 我要投稿 河北网 (https://www.hebeiwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

NLP揭秘:除了宝石,女儿也是灭霸的真爱(大雾)

发布时间:2019-05-15 01:46:46 所属栏目:建站 来源:读芯术
导读:《复仇者同盟4:终局之战》仍在热映中。在看到大下场的同时,本文将带你通过数据科普的目光往返首《复仇者同盟3:无穷战役》:看看这群天下上最强的超等好汉们最爱说的词汇是哪些? 这次回首路程将从一个新的角度出发天然说话处理赏罚。 本文通过行使spaCy(用于
副问题[/!--empirenews.page--]

《复仇者同盟4:终局之战》仍在热映中。在看到大下场的同时,本文将带你通过数据科普的目光往返首《复仇者同盟3:无穷战役》:看看这群天下上最强的超等好汉们最爱说的词汇是哪些?

这次回首路程将从一个新的角度出发——天然说话处理赏罚。

本文通过行使spaCy(用于处理赏罚和领略大量文本的NLPPython 开源措施库)对复联3的脚本举办说明,并研究以下几个项目:

  • 整部影戏中行使最频仍的前十个动词、名词、副词和形容词。
  • 特定脚色行使最多的动词和名词。
  • 影戏中说起次数排位前30位的定名实体(namedentities)。
  • 各脚色之间台词对白的相似性,譬喻雷神的台词对白和灭霸台词对白的相似性。

望见代码和专业词汇就想睡?本日你可以安心了!为读者着想,本文中行使的词汇和术语都长短技能性的,以是就算是你没有打仗过NLP、AI、呆板进修可能诸如*insert buzzword here*之类的代码,你都能领略并把握本文想要通报的信息哦!以是,不看代码也不会影响你对别的内容的领略。

灭霸

灭霸 图片来历:Marvel

处理赏罚数据

尝试中行使的数据或文本语料库(凡是在NLP中称为语料库)是影戏剧本。可是,在行使这些数据之前,必要做一下筛选。由于,生理形貌、举措描写可能场景形貌的文本,以及每句台词前的脚色名(仅指示措辞人,不作为文天职析的语料库)都不是本次研究的工具。以是,诸如“Thanoscrushes the Tesseract, revealing the blue Space Stone…” (灭霸捏碎了宇宙魔方,得到了蓝色的空间宝石……)之类的句子都被删除了。

另外,作为spaCy数据处理赏罚步调的一部门,“I”(我)、“you”(你)、“an”(一个)这类被标志为遏制词(常用的单词,多为冠词、介词、副词或连词)的术语被将不做处理赏罚。同时,尝试进程中只行使单词的尺度情势,也就是词根。举例声名,动词“talk”、“talked”和“talking”是统一个词“talk”(措辞)的差异情势,以是这些词的词根就是“talk”。

要在spaCy中处理赏罚一段文本,起首必要加载说话模子,然后在文本语料库上挪用模子举办文本处理赏罚。功效会输出一个涵盖全部已处理赏罚文本的Doc文件。

  1. importspacy 
  2.     # load a medium-sized language model 
  3.     nlp = spacy.load("en_core_web_md") 
  4.     with open('cleaned-script.txt', 'r') asfile: 
  5.        text = file.read()    
  6.     doc = nlp(text) 

在spaCy中建设Doc文件

然后就可以得到一个颠末处理赏罚、有用信息占比极高的语料库。紧接着就可以开始尝试了!

整部影戏中行使最频仍的前十个动词、名词、副词和形容词

是否也许仅通过相识呈现最频仍的动词就揣度出影戏的整体走向和情节呢?下文的图表证明白这一概念。

NLP揭秘:除了宝石,女儿也是灭霸的真爱(大雾)

“I know” (我相识……)、“you think” (你认为……)是最常见的短语。

“know” (相识)、“go” (去)、 “come”(来)、“get” (得到)、“think”(思索)、“tell” (汇报)、“kill” (行刺)、“need” (必要)、“stop” (避免)、和“want” (想要) 。从中可以或许揣度出什么?介于这部影戏于2018年上映,信托大部门观众都已经知道它报告了一个什么样的故事:按照这些动词揣度出《复仇者同盟3:无穷战役》是关于相识、思索和观测怎样去阻止某物或或人。

通过以下代码就能统计各个动词呈现次数:

  1. importspacy 
  2. #load a medium-sized language model 
  3. nlp= spacy.load("en_core_web_md")  
  4. withopen('cleaned-script.txt', 'r') as file: 
  5.     text = file.read()   
  6. doc= nlp(text) 
  7. #map with frequency count 
  8. pos_count= {} 
  9. fortoken in doc: 
  10.     # ignore stop words 
  11.     if token.is_stop: 
  12.         continue 
  13.     # pos should be one of these: 
  14.     # 'VERB', 'NOUN', 'ADJ' or 'ADV' 
  15.     if token.pos_ == 'VERB': 
  16.         if token.lemma_ in pos_count: 
  17.             pos_count[token.lemma_] += 1 
  18.         else: 
  19.             pos_count[token.lemma_] = 1 
  20. print("top10 VERBs {}".format(sorted(pos_count.items(), key=lambda kv: kv[1],reverse=True)[:10])) 

(编辑:河北网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读