Python:两个文件之间的逐字文本处理

2024-09-28 17:23:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我是新来的。我有两个文本文件。第一个文件的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列。在第五栏,我有下面类似对话的单词顺序。在

^{pr2}$

在这里,句号和逗号被视为单词,如果它有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

enter image description here

因为我对python环境完全陌生。我不知道从哪里开始。请提供你的建议和任何编码技巧!在

第一个文件包含对话,第二个文件包含有关对话的信息


Tags: 文件theyouishelpbe对话this
1条回答
网友
1楼 · 发布于 2024-09-28 17:23:08

我建议执行以下步骤:

处理文本文件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列)。在

只需执行sentence.split(" ")[4],就可以从字符串TheBigBangTheory.Season01.Episode01.en 1 59.160 0.070 you 0.990 lex中获取单词,在本例中返回you。在

我相信它还需要一些调整,但我将把它留给你。这也许能概括出总体思路。在

祝你好运,巴辛加!在

相关问题 更多 >