0

我正在尝试使用 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。我了解,就拆分语言文本而言,正则表达式或拆分技术并不是一种好的技术,它可能因一种形式而异。这就是原因,我正在寻找一些关于这个的建议

欢迎任何建议或意见!

4

0 回答 0