我有來自醫療部門的「chunked」句子的文件。在特殊字符之前只能得到一個字
句子看起來像:
「[ADVP再次/ RB] [VP看出/ VBN] [NP是/ VBZ] [NP一個/ DT焦/ JJ 不對稱/ NN]
「[NP診斷/ JJ乳房X線照片/ NN] [PP// IN] [NP/DT左/ JJ 乳房/ NN]。
我需要從這些「塊」中只提取單詞的方法。所有句子的通用規則是這些單詞出現在'/'字符之前。
是否有選擇組合REGEX或其他的東西來獲得沒有POS的字符串?
感謝
我有來自醫療部門的「chunked」句子的文件。在特殊字符之前只能得到一個字
句子看起來像:
「[ADVP再次/ RB] [VP看出/ VBN] [NP是/ VBZ] [NP一個/ DT焦/ JJ 不對稱/ NN]
「[NP診斷/ JJ乳房X線照片/ NN] [PP// IN] [NP/DT左/ JJ 乳房/ NN]。
我需要從這些「塊」中只提取單詞的方法。所有句子的通用規則是這些單詞出現在'/'字符之前。
是否有選擇組合REGEX或其他的東西來獲得沒有POS的字符串?
感謝
這似乎工作:
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);
=> 「再次看到的是焦點不對稱」
您正在搜索再次匹配 一個正則表達式,看到是,一,對稱 和 診斷,mammogramm,的,的,左乳房
,對嗎?
則.../\ B([\ W] +)//應該工作
是我搜索正則表達式,將第一句轉換爲簡單的字符串,其中包含: 再次看到的是焦點對稱性。 – AlexBerd
查找此正則表達式的所有字符。
\w+(?=/)
我測試了它在RegexPal.com。像魅力一樣工作。
該正則表達式非常簡單。它匹配單詞(\w+
),後跟/
而不使/
部分匹配。這消除了處理捕獲組等的需要。它與(?=/)
匹配,然後與立即跟隨的點匹配。這被稱爲lookahead。
下面是一些示例代碼:
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
試試這個。
var val = "[ADVP again/RB ] [VP seen/VBN ] [NP is/VBZ ] [NP a/DT focal/JJ asymmetry/NN ]";
var list = val.Split('/').Select(c => c.Split(' ').Last());
謝謝!偉大的作品! – AlexBerd