问题描述
目标
我想让单词被特定符号包围,例如括号及其索引号。
self.network = nn.Sequential(
nn.Conv2d(3,32,kernel_size=3,padding=1),nn.Conv2d(32,nn.ReLU(),64,stride=1,# Change this from 32 to Now 64 like I did here.
nn.Conv2d(64,nn.MaxPool2d(2,2),# output: 64 x 16 x 16
索引号被认为是在分割输入句子的列表之后。
问题
电流输出主要有两个问题。
-
索引计数由非词库完成。
-
与正则表达式匹配没有达到我预期的效果。
# input and symbol []
A key word is put in parentheses,like these: [keyword] or [key word]
# output
keyword (9,9)
key word (11,12)
代码
['A','key','word','is','put','in','parentheses,','like','these:','[keyword]','or','[key','word]']
keyword] or [key word
(47,68)
解决方法
看看这是否有帮助:
import re
sentence = "A key word is put in parentheses,like these: [keyword] or [key word]"
splitted = sentence.split(' ')
matched = re.finditer("(?<=\[)([a-z ]+)(?=\])",sentence)
#print(matched)
for w in matched:
start = len(sentence[:w.span()[0]-1].split())
quantity = len(w.group().split()) - 1
print(w.group(),(start,start + quantity))
我的输出:
keyword (9,9)
key word (11,12)
编辑:
你也可以添加这个
sentence = sentence.replace('[',' [')
sentence = sentence.replace(']','] ')
用于避免在使用 split() 和 len() 计算单词位置时可能出现的错误