Python 正则表达式 - 解析字符串并用逗号和美元分隔
Python Regex -Parse a string and split it by comma & dollar
我有这样一句话-
stmt ="Is abc service accessible to sd, rc & odd in XYZ?"
而且我在字符串中有这样的实体 -
str_entities= "abc service$Service,sd,rc & odd$Processes, XYZ$Name"
我想将这些实体转换为 spacy json 格式,例如。其中包含每个实体的单词索引和该实体的标签
(stmt, {"entities": [(3,14, 'Service'),(30, 41, 'Processes'), (46, 48, 'Name')]})
我试过下面的正则表达式,但它只适用于一种情况,我想要一个可以提取任何编号的通用的。实体数。
re.findall("(.*.?)$(\S+),(.*.?)$(\S+)", str_entities)
我在许多文件中都有 10000 行这样的行,想要生成该格式以便我可以训练自定义 spacy 模型。我无法生成实体,因为逗号多次拆分实体,我失去了从 stmt 中查找索引的词。
我不确定我是否理解正确,但我会将 str_entities 与
分开
[^ ^,]+[^$]*$[^$^,]+
这样您就可以同时获得字符串和实体,它们仍然与 $ 符号结合在一起。之后,您可以使用 for 语句遍历元素并获取索引值。
enentity_list=[]
for e in re.findall("[^ ^,]+[^$]*$[^$^,]+", str_entities):
entity_list.append((stmt.index(e.split('$')[0]),stmt.index(e.split('$')[0])+len(e.split('$')[0]),e.split('$')[1]))
json=(stmt,{"entities":entity_list})
上试试
我有这样一句话-
stmt ="Is abc service accessible to sd, rc & odd in XYZ?"
而且我在字符串中有这样的实体 -
str_entities= "abc service$Service,sd,rc & odd$Processes, XYZ$Name"
我想将这些实体转换为 spacy json 格式,例如。其中包含每个实体的单词索引和该实体的标签
(stmt, {"entities": [(3,14, 'Service'),(30, 41, 'Processes'), (46, 48, 'Name')]})
我试过下面的正则表达式,但它只适用于一种情况,我想要一个可以提取任何编号的通用的。实体数。
re.findall("(.*.?)$(\S+),(.*.?)$(\S+)", str_entities)
我在许多文件中都有 10000 行这样的行,想要生成该格式以便我可以训练自定义 spacy 模型。我无法生成实体,因为逗号多次拆分实体,我失去了从 stmt 中查找索引的词。
我不确定我是否理解正确,但我会将 str_entities 与
分开[^ ^,]+[^$]*$[^$^,]+
这样您就可以同时获得字符串和实体,它们仍然与 $ 符号结合在一起。之后,您可以使用 for 语句遍历元素并获取索引值。
enentity_list=[]
for e in re.findall("[^ ^,]+[^$]*$[^$^,]+", str_entities):
entity_list.append((stmt.index(e.split('$')[0]),stmt.index(e.split('$')[0])+len(e.split('$')[0]),e.split('$')[1]))
json=(stmt,{"entities":entity_list})
上试试