larhud / timeline

Sistema para gerenciamento de timelines
2 stars 1 forks source link

Algoritmo de treinamento para encontrar os textos das notícias #39

Open josircg opened 1 year ago

josircg commented 1 year ago

Um dos trabalhos manuais realizados pelos usuários da Timeline é a seleção do texto real da notícia. Quando se tenta fazer o scrap de todo o texto de uma página HTML, a rotina padrão traz menus, popups, publicidades e diversos outros elementos que não são o texto efetivo de uma notícia.

Entretanto, é possível encontrar um padrão de tags/classes para cada tipo de site. Por exemplo, no globo.com, o texto da notícia se encontra na classe "content-text__container", já na UOL, as tags são outras.

Como nós já temos muitas notícias registradas que tem o texto limpo pelo usuário, a ideia é criar uma rotina de treinamento que descubra em quais tags e classes estão os textos da notícia.

Para tal, vamos criar 2 novas classes Canal e CanalRegra. Canal terá o domínio/subdomínio da URL da notícia. Já CanalRegra terá 3 atributos: o canal (ForeignKey), o tipo da regra (Contém/Ignore) e um json que identifique a tag HTML+classe ou id que contém o texto da notícia.

Assim, vamos criar um management que vai analisar uma notícia já revisada e irá:

1) criar ou buscar (get_or_create) o Canal a partir do domínio do site (ex: globo.com) 2) encontrar em quais tags o texto da notícia aparece. 3) para cada tag/classe, deve-se gravar em CanalRegra com o tipo de regra "" 4) caso alguma parte do texto das tags não seja encontrado no texto limpo, verificar se existem tag/classes específicas do texto faltante. Caso positivo, criar um CanalRegra com o tipo Ignore para as tags/classes específicas.