soup - Escoge automáticamente las etiquetas del contexto usando Python
python soup find (5)
Aquí hay un artículo sobre cómo eliminar las palabras de parada . El enlace a la lista de palabras finales en el artículo está roto, pero aquí hay otro .
¿Cómo puedo elegir las etiquetas de un artículo o la publicación de un usuario usando Python?
¿El siguiente método está bien?
Elabore una lista de palabras de frecuencia del texto y ordénelas.
Elimine algunas palabras comunes y elija las 10 palabras principales que permanecen en la lista como etiquetas.
Si el método anterior está bien, ¿qué biblioteca puede detectar si las palabras son comunes, como "el, si, usted, etc." y cuáles son palabras descriptivas?
En lugar de poner en la lista negra palabras que no deberían ser etiquetas, ¿por qué no creas una lista blanca de palabras que podrían convertirse en buenas etiquetas?
Comience con un puñado de etiquetas que le gustaría tener, como Python
, off-topic
, football
, rickroll
o lo que sea (¡depende del tipo de sitio que esté construyendo!) Y haga que el sistema solo sugiera entre ellas, luego deje que los usuarios seleccionen manualmente las etiquetas apropiadas y también les permiten escribir sus propias etiquetas.
Cuando suficientes usuarios sugieren una etiqueta, ingresa en el grupo de etiquetas "conocidas como buenas" para la sugerencia automática, tal vez después de algún tipo de moderación, de modo que aún puede incluir etiquetas estúpidas como lolol
o etiquetas tipográficas como orientadas a objetos cuando usted tiene object-oriented
.
Solo mostrar algunas sugerencias Ofrecer autocompletado Limite el número de etiquetas por artículo. Si esto se trata de codificación, tal vez algún tipo de sistema de detección de lenguaje (el comando de file
Linux no es muy malo en esto) ayudará a su sistema de sugerencias.
Sugeriría que descargues el volcado de datos de . Allí obtienes muchas publicaciones del mundo real, con etiquetas apropiadas, para probar diferentes algoritmos de selección de etiquetas.
Pero en general, dudo que funcione demasiado bien. Para su propia pregunta, "palabras" es el ganador claro en el recuento de palabras, seguido de una lista de palabras con dos apariciones cada una, como "común", "lista", "método", "selección" y "etiquetas". ¿Cuál de esos elegirías automáticamente como etiquetas? Además, las etiquetas que eliges manualmente contienen "python" y "context", ninguna de las cuales aparece con alta frecuencia de palabras.
Entrene el filtro Bayes o Fischer con los datos ya etiquetados (por ejemplo, con el volcado de datos de sugerido por sth) y úselos para clasificar las nuevas publicaciones. Recomiendo leer el excelente libro de Inteligencia Colectiva de Programación de Toby Segaran para obtener más información y ejemplos de Python sobre este tema.
The Natural Language Toolkit ofrece una amplia variedad de métodos para este tipo de cosas. No puedo darle consejos prácticos ya que no estoy familiarizado con este tema, pero creo que vale la pena el esfuerzo de leer algunos artículos sobre este tema antes de comenzar: simplemente elegir palabras del texto directamente no lo hará. llegar muy lejos, creo, probablemente debería tratar de encontrar palabras similares a las de esas etiquetas que ya existen. Y, por supuesto, debe filtrar las palabras comunes del lenguaje como "the" y esas cosas. Una vez más, esta biblioteca de Python puede ayudarlo con esto, al menos para algunos idiomas comunes.