2017-03-21 3 views
1

필자는 제대로 작동하는 텍스트 스피너를 쓰고 있습니다. 그러나 읽을 수있는 문장의 정확성은 데이터베이스에서 가져 오는 사전을 사용하기 때문에 매우 낮습니다. spintax이Naive Bayes를 사용하는 Text Spinner

{Your} {home| house| residence| property} {is} {your} {castle| mansion| fortress| palace} 

같이 복귀 임의로 동의어 사용자의 원래 입력에 기초하여 출력 문장 선택하는 함수에 전달된다. 입력 예 :

Your home is your castle. 

Your property is your mansion. 

지금 나는 내 출력 문장을 더 읽을 것 같은 인공 지능을 포함 할 돌아갑니다. 순진한 베이 즈를 사용하여 더 나은 선택을하는 법을 알고 싶습니다. 나는 아마 더 나은 결과를 위해 훈련 할 필요가 있음을 안다.

단어 선택에 대한 나의 현재 방법은 다음과 같습니다. 지금은 매우 간단합니다. 너희들이 나를 당신의 질문에 간결하게 대답이 없기 때문에

답변

1

이 아마 폐쇄 얻을 것이다에 알려 더 많은 코드를 게시하려면 내가 필요하면

def spin(spintax): 
    while True: 
     word, n = re.subn('{([^{}]*)}',lambda m: random.choice(m.group(1).split("|")),spintax) 
     if n == 0: break 
return word.strip() 

은 사전에 감사합니다,하지만 당신은 NLTK을 확인 할 수 있습니다 워드 넷 :

https://pythonprogramming.net/wordnet-nltk-tutorial/

1

어쩌면 모든 영어 책에서 구글이 수집 된 데이터 세트를 다운로드하고 ngrams를 사용하여 임의의 문장을 생성 할 수 있을까? https://books.google.com/ngrams

구현시 Markov chain을 사용합니다. 다운로드 한 데이터는 선택할 다음 단어에 대한 확률을 제공합니다.

+0

제안 해 주셔서 감사합니다. –