【发布时间】:2011-10-27 14:02:42
【问题描述】:
我正在用 C# 构建一个自然语言处理器,我们数据库中的许多“词”实际上是指一个名词或动作的多词短语。请不要讨论这个设计调用,只要说它目前不可更改就足够了。我有我需要测试这些短语和单词的句子相关单词(块)的字符串数组。 什么是处理子数组提取的适当惯用方法,这样我就可以将溢出错误等风险降到最低?
为了给出所需逻辑的示例,让我通过一个示例块逐步运行。出于我们的目的,假设数据库中唯一的多词短语是“quick brown”。
Full phrase: The quick brown fox -> encoded as {"The", "quick", "brown", "fox"}
First iteration: Test "The quick brown fox" -> returns nothing
Second iteration: Test "The quick brown" -> returns nothing
Third iteration: Test "The quick" -> returns nothing
Fourth iteration: Test "The" -> returns value
Fifth iteration: Test "quick brown fox" -> returns nothing
Sixth iteration: Test "quick brown" -> returns value
Seventh iteration: Test "fox" -> returns value
Sum all returned values and return.
我对如何解决这个问题有一些想法,但我越是关注事情,我就越担心数组寻址错误和其他困扰我的代码的恐怖事件。该短语以字符串数组的形式出现,但我可以将其放入 IEnumerable。我唯一担心的是 Enumerable 缺少索引。
【问题讨论】:
-
为什么两个词的短语最初没有编码为 {"The", "quick brown", "fox"} ??
-
您是否在询问如何为每次迭代生成测试短语?
-
@sllev:因为我们不知道它是一个多词短语,直到它进入数据库并返回。在此之前,它只是根据相关的语法角色(主语从句、动词从句等)进行编码。它从那里分解成该子句中单词的字符串数组。
-
@Philip:有点像?我知道如何从子数组中生成字符串。问题是确保我得到子数组的方式不会在处理整数寻址或其他东西时搞砸。
标签: c# arrays string sub-array