我正在尝试使用 Python 从组合的英语句子中创建子句。我需要帮助找出最好的方法和正确的方法。
我已经研究了关于从句子中找到有意义的子句的类似问题。问一个新问题的原因是,一旦我从原始句子中识别出一组子语句,我想重新表述新创建的句子。
发布我目前用来完成任务的最小代码:
def create_SLEW_Messages(req):
print(req)
# Pass Fail statement will be something like
# "Verify that " + InitPart
# first split the requirement with SHALL keyword, which is the subject
InitPart = re.split('shall', req, flags=re.IGNORECASE)[0]
# to get the exact word after shall
verbWord = re.split('shall', req, flags=re.IGNORECASE)[1].split()[0]
TempPassFailStatement1 = re.split('and', req, flags=re.IGNORECASE)[0]
PassFailStatement1 = re.split('shall', TempPassFailStatement1, flags=re.IGNORECASE)[1]
PassFailStatement2 = re.split('and', req, flags=re.IGNORECASE)[1].split(",")[0]
returnPassFailStatement1 = "Verify that " + InitPart + " will " + PassFailStatement1
print(returnPassFailStatement1)
returnPassFailStatement2 = ""
if verbWord in PassFailStatement2:
returnPassFailStatement2 = "Verify that " + InitPart + " will " + PassFailStatement2
print(returnPassFailStatement2)
else:
returnPassFailStatement2 = "Verify that " + InitPart + " will " + verbWord + " " + PassFailStatement2
print(returnPassFailStatement2)
return returnPassFailStatement1, returnPassFailStatement2
前置条件 - 提供给上述函数的语句将始终有一个“shall”关键字
数据 1 ==> 输入 1 - alpha 磁带应向下移动以增加 xyz_alphaBeta,向上移动以减少 xyz_alphaBeta。
输出(实际):
验证 alpha 磁带将向下移动以增加 xyz_alphaBeta
验证 alpha 磁带将向上移动以减小 xyz_alphaBeta。
上面的输出是根据我的要求,但是当我通过一个类似排序和不同复杂度的句子时,我的算法无法检测到正确的子句和帧不正确或不完整的句子,如下所示的数据 2
数据 2 ==> 输入 2 -最小数据错误应位于 alpha 磁带上,向上移动以增加 fac_alphaV3,向下移动以减少 fac_alphaV3。
输出(实际):
验证最小数据错误将位于 alpha 磁带上,向上移动以增加 fac_alphaV3
验证最小数据错误将向下降低 fac_alphaV3。
输出(必填):
验证最小数据错误将位于 alpha 磁带上,并向上移动以增加 fac_alphaV3
确认最小数据错误将位于 alpha 磁带上,并向下移动以减小 fac_alphaV3。
PS。我了解,就拆分语言文本而言,正则表达式或拆分技术并不是一种好的技术,它可能因一种形式而异。这就是原因,我正在寻找一些关于这个的建议
欢迎任何建议或意见!