从一个句子中做出有意义的句子的最佳方法

时间:2019-08-03 02:36:49

标签: python parsing nlp tokenize

我正在尝试使用Python从组合的英语句子中创建子句。我需要帮助,以找出最佳方法和正确方法。

我调查了与此Finding meaningful sub-sentences from a sentence相关的类似问题。提出新问题的原因是,一旦我从原始句子中识别出一组子陈述,便想重新表达新创建的句子。

发布当前正在用于执行任务的最小代码:

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

前提条件-提供给上述函数的语句将始终带有“必须”关键字

数据1 ==> 输入1- alpha磁带应向下移动以增加xyz_alphaBeta,而向上移动以减小xyz_alphaBeta。

输出(实际):

验证alpha磁带将向下移动以增加xyz_alphaBeta

验证alpha磁带将向上移动以减小xyz_alphaBeta。

上面的输出是根据我的要求,但是,当我传递相似种类和不同复杂度的句子时,我的算法无法检测到正确的子句,并且对不正确或不完整的句子进行构架,如数据2所示,< / em>

数据2 ==> 输入2-最小数据错误应放置在alpha磁带上,向上移动以增大fac_alphaV3,向下移动以减小fac_alphaV3。

输出(实际):

验证“最小数据错误”将位于alpha磁带上,向上移动以增加fac_alphaV3

验证最小数据错误将向下以减少fac_alphaV3。

输出(必填):

验证“最小数据错误”将放置在alpha磁带上,向上移动以增加fac_alphaV3

验证最小数据错误将放置在alpha磁带上并向下移动以减小fac_alphaV3。

PS。我知道,就拆分语言文本而言,正则表达式或拆分技术不是一种好技术,因为文本语言可能会因一种形式而异。这就是原因,我正在为此寻求一些建议

欢迎任何建议或意见!!!

0 个答案:

没有答案