Какой подход лучше всего подходит для определения срочности в заявлении (обработка естественного языка)? - PullRequest
1 голос
/ 01 октября 2019

Я работаю над этой проблемой, где мне нужно понять, насколько срочно нужно отвечать на почту. Моя цель заключается в том, чтобы эта система работала в любом случае, то есть основное внимание должно быть сосредоточено на словах, которые показывают срочность, а не на предметной области.

Мой первоначальный подход состоял в том, чтобы использовать набор слов, которые обычно показывают срочность, а затем увидеть сходство между словами, присутствующими в операторе ввода. Это работало очень хорошо для простых заявлений, но, очевидно, когда это усложнялось, типа «я думал, что это срочно, но вы можете потратить время», не могли быть правильно классифицированы.

def score(string):
sum = 0
   #calculate average of similarities for words above threshold (0.6)
    for word in string:
        for element in ms:
            score = models.similarity(word,ps.stem(element))
             if pol and score > 0.6:
                 sum+=score
    return sum/len(string)

#my trained MNB model

model = pickle.load(open("MyClassifier-MNB.model","rb"))
#new mail --> "I thought this was urgent, but take your time"
item = account.inbox.filter(is_read=False).order_by('-datetime_received')[0]
score(item.body)

#it is obvious that this will return a good score because i am only checking if the key words are present. What would be a good way to check negation. I also tried using polarity_score from nltk but it couldn't do much.

для "Я думал, что это срочно, но вы можете потратить время"
"Ожидаемый результат: "
Не срочно
«Мой вывод: »
Срочно

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...