〔实施例
欢迎来到全国篮球总决赛,今天这里的篮球队已经走过了漫长的道路。没有多少延迟让我们打篮球。我想返回national = 1,因为它只出现在一个部分等
正致力于使用单词位置确定文本上下文。
正在使用c#并且在文本处理方面不是很好 基本上 如果4个部分中出现一个单词,则得分为4 如果一个单词出现在3个部分,则得分为3 如果一个单词出现在2个部分,则得分为2 如果一个单词出现在1节中,则得分为1
提前致谢
到目前为止,我有这个var s =“欢迎参加全国篮球决赛,今天在这里的篮球队已经走过了漫长的道路。没有太多延迟让我们打篮球。”;
var numberOfParts = 4;
var eachPartLength = s.Length / numberOfParts;
var parts = new List<string>();
var words = Regex.Split(s, @"\W").Where(w => w.Length > 0); // this splits all words, removes empty strings
var wordsIndex = 0;
for (int i = 0; i < numberOfParts; i++)
{
var sb = new StringBuilder();
while (sb.Length < eachPartLength && wordsIndex < words.Count())
{
sb.AppendFormat("{0} ", words.ElementAt(wordsIndex));
wordsIndex++;
}
// here you have the part
Response.Write("[{0}]"+ sb);
parts.Add(sb.ToString());
var allwords = parts.SelectMany(p => p.Split(' ').Distinct());
var wordsInAllParts = allwords.Where(w => parts.All(p => p.Contains(w))).Distinct();
答案 0 :(得分:2)
这个问题很难解释。我不完全理解你的目标,我怀疑你也可能不会。
在没有明确要求的情况下,没有办法给出具体答案,所以我会给出一个通用答案:
尝试编写一个明确指定所需行为的测试。你已经得到了一个带有你的样本字符串和你想要的结果的开头,但是你所寻找的并不是明确的。
进行测试,当它通过时,表明存在所需行为之一。如果这对您的问题没有帮助,请回过头来编辑这个问题或者创建一个包含测试的新问题。
至少,您将能够从此网站获得更好的答案。