首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用re.split在文字记录中区分说话人和说话人?

如何使用re.split在文字记录中区分说话人和说话人?
EN

Stack Overflow用户
提问于 2020-11-16 12:02:25
回答 1查看 60关注 0票数 1

我正在处理文字记录,并试图找到一种方法,将发言者的姓名与他们的发言内容分开。我一直在尝试使用re.split,但到目前为止还没有任何运气。

代码语言:javascript
复制
dummyText1 = "bill: hello \nted: hello \nto you \nbill: goodbye \nted: goodbye \nto you"

-------------------
Original Transcript
-------------------
(L1)  bill: hello
(L2)  ted:  hello 
(L3)        to you
(L4)  bill: goodbye
(L5)  ted:  goodbye 
(L6)        to you

----------------
Desired Output
-------------------------
Speaker | Speech
-------------------------
bill    | hello
ted     | hello to you
bill    | goodbye
ted     | goodbye to you

我最初的想法是对换行符+单词使用积极的展望,并使用":“符号来标记言语的开始,但这是行不通的。我也不知道如何分组将共享同一说话人的行(即,第2-3行和第5-6行被处理为一个单独的语音转换而不是单个行)。

代码语言:javascript
复制
splitText1 = re.split(r"(\n?=[a-z])*:", dummyText1, flags=re.MULTILINE) 

我的预期输出将是一个列表对象列表,每个嵌套列表都包含语音ID和语音(作为字符串)。

代码语言:javascript
复制
desired_output = [['bill','hello'],['ted','hello to you'],['bill','goodbye'],['ted','goodbye to you']]
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-16 12:29:30

您可以使用

代码语言:javascript
复制
import re
dummyText1 = "bill: hello \nted: hello \nto you \nbill: goodbye \nted: goodbye \nto you"
p = r'^((?:[^\W\d_]|[^\S\r\n])+):(.*(?:\n(?!(?:[^\W\d_]|[^\S\r\n])+:).*)*)'
print( [[x.strip(),y.replace('\n','').strip()] for x,y in re.findall(p, dummyText1, re.M)])

输出:

代码语言:javascript
复制
[['bill', 'hello'], ['ted', 'hello to you'], ['bill', 'goodbye'], ['ted', 'goodbye to you']]

请参阅Python演示regex演示

Regex详细信息

  • ^ -行的开始(由于re.M^在中断行后也匹配一个位置)
  • ((?:[^\W\d_]|[^\S\r\n])+) -第1组:一个或多个字母([^\W\d_])或(|)水平空格([^\S\r\n])
  • : -一个冒号
  • (.*(?:\n(?!(?:[^\W\d_]|[^\S\r\n])+:).*)*) -第2组:
    • .* -行的其余部分
    • (?:\n(?!(?:[^\W\d_]|[^\S\r\n])+:).*)* -零或更多次出现
      • \n(?!(?:[^\W\d_]|[^\S\r\n])+:) -一个换行符,后面没有一个或多个字母或水平空格,然后是一个:字符
      • .* -剩下的部分。
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64857655

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档