我有医疗部门的“块状”判决的文件。
这些句子看上去如下:
“ADVP再次/RB NP是/VBZ。 NP诊断/JJ乳房X线/NN左/DT/JJ乳房/NN。
我只需要从这些“块”中提取单词的方法。所有句子的共同规则是,单词放在'/‘字符之前。
是否可以选择组合REGEX或其他东西以获得不带POS的字符串?
谢谢
发布于 2012-05-11 11:57:51
这似乎是可行的:
var patt = @"\s(\b(.+?))/";
var matches = Regex.Matches("[ADVP again/RB ] [VP seen/VBN ] [NP is/VBZ ] [NP a/DT focal/JJ asymmetry/NN ].", patt);
var matchedValues = matches
.Cast<Match>()
.Select(match => match.Groups[1].Value);
var output = string.Join(" ", matchedValues);=>“再一次看到是一个焦点不对称”
发布于 2012-05-11 12:12:02
找到所有匹配的这个正则表达式。
\w+(?=/)我在RegexPal.com上测试过。很有魅力。
判决非常简单。它匹配单词(\w+)和/,而不将/作为匹配的一部分。这样就不需要处理捕获组之类的问题。它与(?=/)进行‘后跟’匹配,实质上匹配一个紧跟在/后面的点。这就是所谓的前瞻。
下面是一些示例代码:
string sentence = "[ADVP again/RB ] [VP seen/VBN ] [NP is/VBZ ] [NP a/DT focal/JJ asymmetry/NN ].";
MatchCollection matches = Regex.Matches(sentence, @"\w+(?=/)");
foreach (Match match in matches)
{
Console.WriteLine(match.Value);
}输出:
again
seen
is
a
focal
asymmetry发布于 2012-05-11 11:42:01
你又在寻找一种RegEx匹配,看到,is,a,对称和诊断,乳房摄影,的,左,乳房。
对吗?
然后..。/\b(\w+)//应起作用
https://stackoverflow.com/questions/10550610
复制相似问题