Как извлечь From,To и Body из электронной почты, используя R

У меня есть данные электронной почты в формате документа, каждый формат документа имеет один адрес электронной почты.

EX:

From,  
Mr.Joseph,  
Sales Head,  
Wall Mart,  
London  

To,  
Ms Rebecca,  
Junior sales person,  
Wall Mart,  
London  

Dear Ms Rebecca,

Lorem Ipsum is simply dummy text of the printing and typesetting industry. 
Lorem Ipsum has been the industry's standard dummy text ever since the 
1500s, when an unknown printer took a galley of type and scrambled it to 
make a type specimen book. It has survived not only five centuries, but also 
the leap into electronic typesetting, remaining essentially unchanged. It 
was popularised in the 1960s with the release of Letraset sheets containing 
Lorem Ipsum passages, and more recently with desktop publishing software 
like Aldus PageMaker including versions of Lorem Ipsum.  

Yours faithfully
Joseph

Я успешно извлек тело этого письма.

КОД:

docfile <- readtext("letter.doc")$text
docfile <- strsplit(docfile, "\n")[[1]]
startbody <- grep(c("Dear Ms Rebecca,"), docfile)[1]
endbody <- grep("Yours faithfully,", docfile)[1]
mainbody <- paste(docfile[startbody:(endbody-1)], collapse=" ")
finalbody <- str_replace_all(mainbody, "\r ","")

Теперь проблема в том, что многие письма, подобные этой, содержат "Уважаемую маму" или что-то еще в месте "Дорогая мисс Ребекка".
В общем, я хотел сказать, что написанный мной код работает только для этого конкретного файла документа, и каждый файл документа отличается от других. Я хочу извлечь 'From', 'To' и 'Body' из каждого файла документации, который у меня есть, но этот код работает только для этого конкретного файла.

Надеюсь, я прояснил вопрос, любой вклад или помощь были бы очень полезны для меня.

Спасибо

1 ответ

Ваше решение для этого заключается в использовании пакета crfsuite R. Позволяет строить условные случайные поля. Эти типы моделей можно использовать для классификации фрагментов текста в зависимости от категории, которую вы имеете в виду. Одна категория может быть, например, "начало письма", другая - "конец письма"... Примеры приведены в виньетках crfsuite https://cran.r-project.org/web/packages/crfsuite/index.html Я использую этот пакет R точно для того же вопроса, который вы задаете.

Другие вопросы по тегам