>

구문 적으로 구문 분석 된문장이 있습니다. 예를 들어 "엄마가 요리하고 싶어" 파싱은[( 'My', 1), ( 'mom', 2), ( 'want', -1), ( 'to', 2), ( 'cook', 3)]. 숫자는 단어가 의존하는 항목의 색인을 의미합니다. 'mom'은 'wants'에 의존하고 'wants'는 배열의 두 번째 요소입니다 (평소와 같이 0부터 시작). 'Wants'는 '-1'을 가지고 있는데, 그것이 문장의 핵심이기 때문에 다른 것에 의존하지 않습니다.여기서 '엄마'인 SUBJECT를 가져와야합니다.어떻게해야합니까?

지금까지, 나는 모든 경우에 효과가없는 루프를 작성하려고 시도했다. 이 문제는 주제가 2 단어 이상으로 구성 될 수 있으며 그 수는 정의되어 있지 않습니다. 이것처럼 ...

'값'은 [( 'My', 1), ( 'mom', 2), ( 'want', -1), ( 'to', 2), ( 'cook', 3)]입니다./p>

for indx, value in enumerate(values):
    m = morph.parse(value[0])
    if isinstance(m, list):
        m = m[0]
    if 'NOUN' in m.tag:
        if value[1] == str(index[0]): #it checks if the word (part of the subject) depends on the verb
            terms.append([value[0], indx])
if len(terms) > 0:
    term = terms[0][0]
    t = []
    for indx, value in enumerate(values):
        if value[1] == str(terms[0][1]): #it checks if the word depend on the found part of the subject
            m = morph.parse(value[0])
            if isinstance(m, list):
                m = m[0]
            if 'NOUN' in m.tag:
                t.append([value[0], terms[0][0]])

알고리즘은 다음과 같이 작동해야합니다 :전체 배열을 걷고 주어진 단어의 모든 종속성과 이러한 종속성의 모든 종속성을 찾으면 중지합니다. (이 예에서 'mom'의 모든 종속성). 도와주세요!

  • 답변 # 1

    준비된 배열을 제공하면 매우 쉽습니다 :

    values = [('My', 1), ('mom', 2), ('wants', -1), ('to', 2), ('cook', 3)]
    
    def parseFrom(n, data):
            if values[n][1] != -1:
                    #print('Stepping (%s,%d)' % (values[n][0], values[n][1]))
                    data.append(values[n][0])
                    return parseFrom(values[n][1], data)
            else:
                    #print('At verb')
                    return data
    subject = ' '.join(parseFrom(0, []))
    print('Sentence has subject:', subject)
    
    
    

    현재 단어가 동사가 아닌 경우 함수는 재귀 적이며, 그렇지 않으면 주제를 배열로 반환합니다.모든 문장에서 작동하지 않으면 죄송합니다.

  • 이전 python - django indexerror - deleteview의 빈 목록에서 팝업
  • 다음 완전히 업데이트 된 azerothcore 다운로드에서 도커 작성 버전 충돌이 발생하는 이유는 무엇입니까?