首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将置换树转换为英文散文

将置换树转换为英文散文
EN

Stack Overflow用户
提问于 2012-08-06 22:59:55
回答 3查看 136关注 0票数 2

我正在设计一个读取用户输入的数值的软件。然后它生成在医疗报告中使用的句子。由于句子之间存在如此多的差异,因此出现了一些复杂的情况,并且为每种类型的差异创建一个集合是非常漫长的,而且可能没有效率。

让我举一个我正在努力解决的例子:

假设诊断依赖于人类的神经。

考虑以下神经:正中神经、尺神经、桡神经。

现在,假设用户在软件中输入了数值,该软件会生成哪些神经异常。

考虑以下语句:

左侧正中神经病变的诊断。

双侧尺神经病变的指征。

右桡骨神经病变的指征。

每条语句都是由一组语句生成的,并且可以将这些语句组合在一起,使其具有每个变体。变种是-

左(L)、右(R)、双侧(B) -以及正中、尺骨和桡骨。

所以方差是3^3 = 27。

然而,当有更多的神经时,方差就会指数地上升。如果我有5个神经,那么它就是3^5。

问题是:如何设计软件,使其生成以下句子:

提示左侧正中神经、双侧尺神经和右侧桡神经的神经病变,而实际上没有这些陈述的每个组合和每个陈述的每个条件陈述。

它需要适用于各种语句:举一个句子变化的例子:

左侧胫神经传导速度减慢。

左侧腓神经传导速度减慢。

合并-左侧胫神经和腓神经传导速度减慢。

总而言之:该软件将产生各种类型的句子:用户选择适当的相似句子,然后程序将它们组合在一起。

EN

回答 3

Stack Overflow用户

发布于 2012-08-06 23:11:24

您可以为每个可能的诊断设置集合,然后在计算问题时为其添加神经(?字符串)。然后,对于每个诊断,您将通过迭代匹配的集合并将每条神经组合成一个有代表性的语句(“左侧胫神经和腓神经的神经传导速度降低”)来生成一个句子。这可能是我的方法。

您也可以做相反的方法,并拥有一个神经类,具有每个诊断的属性。您可以修改这些属性,然后迭代不同的诊断,并搜索具有某些属性的神经,尽管这似乎较慢(双重迭代)。

票数 0
EN

Stack Overflow用户

发布于 2012-08-06 23:11:55

几年前我做过类似的事情,以节省一些用户重复输入文本的时间。我创建了一系列复选框,用户可以选中这些复选框,以便从数据源(sql?)加载文本。将它们连接到一个文本框中。这将允许用户编辑文本,以确保其可读性并具有自己的旋转,但自动插入模板化文本将节省键入时间。它们有不同的类别,所以我添加了一个组合框来更改复选框的设置。

所以你可以有: Body part (dropdown):手臂,腿当用户选择“手臂”时,会出现手指,手腕,肘部等的列表。当“腿”被选中时,它会隐藏手臂的复选框,然后显示腿的:膝盖、脚后跟等。

如果取消选中该框,则会找到文本框中的文本并将其删除。

我还创建了另一个更像网格的网格,用户可以单击"Add Row“来添加更多的行。每一行都会有一系列的组合框,他们应该首先选择类别,然后可能是子类别,最后是模板项目的名称,例如“双侧尺神经”。

希望这会有所帮助--我可以根据你的需要提供示例代码。

票数 0
EN

Stack Overflow用户

发布于 2012-08-07 00:44:32

您可能需要一些条件,但理想情况下,您希望使用某种类型的模板。一种简单的模板方法是String.Format()。例如:

代码语言:javascript
复制
String.Format("{0} {1}.", getSymptom(userSymptomNumber), getLocation(userLocationNumber));

在这个极其简单的场景中,getSymptom将从某种数据存储中返回"Indidcation nerve the“,而getLocation将返回”左正中神经“。更复杂的模板可以允许包含集合。您应该查看一些可用的C#模板引擎,或者您可以使用自己的类似于String.Format的轻量级模板代码。你的核心条件句将决定你的句子是如何构成的。从那里开始,它只是用用户输入填充变量。你不应该正确地说出成千上万个完整的句子。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11830821

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档