我是NLP的新手。我有两个文本文件。第一个文件已dialogues
正确格式化,如下所示。
RECEPTIONIST Can I help you?
LINCOLN Yes. Um, is this the State bank?
RECEPTIONIST If you have to ask, maybe you shouldn't be here.
SARAH I think this is the place.
RECEPTIONIST Fill in the query.
LINCOLN Thank-you. We'll be right back.
RECEPTIONIST Oh, take your time. I'll just finish my crossword puzzle.
oh, wait.
第二个文本文件有7列。在第五栏中,我有下面的对话中的序列词。
Column 5
Can
I
help
you
?
yes
.
Um
,
句号和逗号在此处被视为单词,如果它具有3个或更多的句号"..."
,则应将其视为一个单词。另外,如果单词"Thank-you"
(因为它们之间没有空格)应该被视为一个单词。
现在,我想用python写一个脚本来比较中的每个单词dialogues
,然后创建一个新列(第8列),该列应显示“谁在说这个单词”。像下面
Column 5 Column 8
Can RECEPTIONIST
I RECEPTIONIST
help RECEPTIONIST
you RECEPTIONIST
? RECEPTIONIST
yes LINCOLN
. LINCOLN
Um LINCOLN
, LINCOLN
因为我对python环境是全新的。我不知道从哪里开始。请提供您的建议和编码技巧!
第一个文件包含对话,第二个文件包含有关对话的信息
我建议执行以下步骤:
处理文本文件1
在这里您想将字符串拆分LEONARD Agreed, what's your point
为一组标记。一种幼稚的方法是使用split(" ")
它将基于空格分割文本的方法,但是您还需要考虑标点符号。
我建议使用NLTK,这是用于自然语言处理的python库。一个基本的示例将显示这如何帮助您:
import nltk
sentence = """Hi this is a test."""
tokens = nltk.word_tokenize(sentence)
# output: tokens
['Hi', 'this', "is", 'a', 'test', '.']
正确标记每个句子后,您将知道第二个文本文件中有多少行。
处理文本文件2
现在,您将遍历第二个文本文件中的每一行,检查单词是否与您在第一步中找到的假定标记相匹配。如果是这种情况,则将第一个标记(说出它的人的名字)添加到该行的末尾(第8列)。
您可以TheBigBangTheory.Season01.Episode01.en 1 59.160 0.070 you 0.990 lex
通过简单地从字符串中获取单词sentence.split(" ")[4]
,you
在这种情况下会返回。
我相信仍然需要进行一些调整,但我会留给您。这可能会概述总体思路。
祝你好运,Bazinga!
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句