正则表达式处理一段文本的算法问题

王宇伟 2014-12-15 02:40:17
输入一个句子”sssssssssss <p1 pair=1 > <p1 pair=2 > #P1# </p1> </p1> ssssssssssss <p2 pair=1 > #P2# </p2> sssssss <p2 pair=2 > #P3# </p2> sssss .”
句子中有三个实体,标识为#Pn#,共有3个组合:(P1,P2);(P1,P3);(P2,P3)
<p1 pair=1 > <p1 pair=2> #P1# </p1> </p1> 表示P1为pair1和pair2的第一个实体
<p2 pair=1 > #P2# </p2> 表示P2为pair1的第二个实体
<p2 pair=2 > #P3# </p2>表示P3为pair2的第二个实体

输出三个句子分别对应三个组合
1)P1与P2属于同一个pair,都是pair1,因此第一句输出:
+1 sssssssssss PROT1 ssssssssssss PROT2 sssssss #P3# sssss .
其中用PROT1替换#P1#,PROT2替换#P2#,因为属于同一pair,前面标+1,并去除句子中的所有标识信息,即<p1 pair=1>...</p1>这些信息;
2)同样P1与P3属于同一pair,第二句输出:
+1 sssssssssss PROT1 ssssssssssss #P2# sssssss PROT2 sssss .
PROT1,PROT2分别替换#P1#, #P3#,前面标+1;
3)P2与P3不属于同一组,第三句输出:
-1 sssssssssss #P1# ssssssssssss PROT1 sssssss PROT2 sssss .
不属于同一组前面标-1。

问题:利用正则表达式,如何识别标注信息,并设计算法实现这样的输入与输出
...全文
304 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

33,017

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧