Imagen de Agence Olloweb en UnsplashEl plagio es uno de los mayores problemas en muchas industrias, especialmente en la academia. Este fenómeno incluso ha empeorado con el auge de Internet y la información abierta, donde cualquier persona puede acceder a cualquier información con un clic sobre un tema específico. Con base en esta observación, los investigadores han estado tratando de abordar el problema utilizando diferentes enfoques de análisis de texto. En este artículo conceptual, intentaremos abordar dos limitaciones principales de las herramientas de detección de plagio: (1) plagio de reformulación de contenido y (2) plagio de traducción de contenido.(1) Los contenidos reformulados pueden ser difíciles de capturar con las herramientas tradicionales porque no toman en consideración sinónimos y antónimos del contexto general.(2) Contenidos escritos en un idioma diferente al original también son un gran problema al que se enfrentan incluso las herramientas basadas en aprendizaje automático más avanzadas, ya que el contexto se está cambiando por completo a otro idioma. En este blog conceptual, explicaremos cómo usar modelos basados en transformadores para abordar estos dos desafíos de una manera innovadora. forma. En primer lugar, lo guiaremos a través del enfoque analítico que describe todo el flujo de trabajo, desde la recopilación de datos hasta el análisis de rendimiento. Luego, profundizaremos en la implementación científica/técnica de la solución antes de mostrar los resultados finales. Imagine que está interesado en crear una plataforma de administración de contenido académico. Es posible que desee aceptar solo artículos que no se hayan compartido en su plataforma. En este caso, su objetivo será rechazar todos los artículos nuevos que sean similares a los existentes en un cierto umbral. Para ilustrar este escenario, usaremos el conjunto de datos cord-19, que es un desafío de investigación abierto, disponible gratuitamente en Kaggle del Allen Institute for AI. Antes de continuar con el análisis, aclaremos lo que estamos tratando de lograr aquí a partir de la siguiente pregunta:
Problema: ¿Podemos encontrar dentro de nuestra base de datos uno o más documentos que sean similares (en un cierto umbral) a un nuevo documento enviado?
El siguiente flujo de trabajo destaca todos los pasos principales necesarios para responder mejor a esta pregunta.Flujo de trabajo del sistema de detección de plagio (Imagen del autor)
Entendamos lo que está pasando aquí 💡.
Después de recopilar los datos de origen, comenzamos preprocesando el contenido, luego creamos una base de datos vectorial desde BERT. Luego, cada vez que tenemos un nuevo documento entrante, verificamos el idioma y realizamos la detección de plagio. Se brindan más detalles más adelante en el artículo. Esta sección se centra en la implementación técnica de cada sección en el enfoque analítico.
Solo nos interesa el resumen columna de los datos de origen, y también, por simplicidad, usaremos solo 100 observaciones para acelerar el preprocesamiento.source_data_processing.pyA continuación, se encuentran las cinco observaciones aleatorias del conjunto de datos de origen.Cinco observaciones aleatorias de los datos de origen (Imagen del autor)
Centrarse en los modelos BERT y de traducción automática (Imagen del autor) Los desafíos observados en la introducción conducen a elegir, respectivamente, los siguientes dos modelos basados en transformadores:(1) Un modelo BERT: para solucionar la primera limitación porque proporciona una mejor representación contextual de la información textual. Para ello, tendremos:create_vector_from_text: se utiliza para generar la representación vectorial de un solo documento.create_vector_database: se encarga de crear una base de datos que contiene para cada documento el vector correspondiente.bert_model_vectors.pyLa línea 94 muestra cinco observaciones aleatorias de la base de datos de vectores, con la nueva columna de vectores.Cinco artículos aleatorios de la base de datos de vectores (Imagen del autor)(2) Una traducción automática El modelo de transformador se utiliza para traducir el idioma del documento entrante al inglés porque los documentos de origen están en inglés en nuestro caso. La traducción se realiza solo si el idioma del documento es uno de los cinco siguientes: alemán, francés, japonés, griego y ruso. A continuación se muestra la función auxiliar para implementar esta lógica utilizando MarianMT model.document_translation.py
Hay plagio cuando el vector del documento entrante es similar a uno de los vectores de la base de datos en un determinado nivel de umbral.Centrarse en el analizador de plagio (Imagen del autor)
Pero, ¿cuándo dos vectores son semejantes?
→ Cuando tienen la misma magnitud y las mismas direcciones.
Esta definición requiere que nuestros vectores tengan la misma magnitud, lo que puede ser un problema porque la dimensión de un vector de documento depende de la longitud de ese documento. Afortunadamente, tenemos varios enfoques de medidas de similitud que se pueden usar para superar este problema, y uno de ellos es la similitud del coseno, que se usará en nuestro caso. Si está interesado en otros enfoques, puede consultar este increíble contenido por James Briggs. Él explica cómo funciona cada enfoque y sus beneficios, y también lo guía a través de su implementación. El análisis de plagio se realiza utilizando la función run_plagiarism_analysis. Comenzamos comprobando el idioma del documento utilizando la función check_incoming_document para realizar la traducción correcta cuando sea necesario. El resultado final es un diccionario con cuatro valores principales: similitud_score: la puntuación entre el artículo entrante y el artículo existente más similar en la base de datos. is_plagiarism: el valor es verdadero ya sea que la puntuación de similitud sea igual o superior al umbral. De lo contrario, es falso.most_similar_article: la información textual del artículo más similar.article_submitted: el artículo que se envió para su aprobación.plagiarism_analysis.py Hemos cubierto e implementado todos los componentes del flujo de trabajo. Ahora es el momento de probar nuestro sistema utilizando tres de los idiomas aceptados por nuestro sistema: alemán, francés, japonés, griego y ruso.
Estos son los resúmenes de los artículos que queremos comprobar si los autores plagiaron o no.artículo en inglésEste artículo es en realidad un ejemplo de los datos de origen.english_article_to_check = “La necesidad de una investigación multidisciplinaria para abordar los complejos desafíos ambientales y de salud de la actualidad nunca ha sido tan grande. El enfoque de investigación One Health (OH) garantiza que las cuestiones de salud humana, animal y ambiental se evalúen de manera integrada y holística para brindar una una comprensión más completa del problema y las soluciones potenciales de lo que sería posible con enfoques aislados. Sin embargo, el enfoque de OH es complejo y existe una guía limitada disponible para los investigadores con respecto al diseño práctico y la implementación de la investigación de OH. En este documento proporcionamos un marco para guiar a los investigadores a través de la conceptualización y planificación de un estudio de OH Discutimos los pasos clave en el diseño de un estudio de OH, incluida la conceptualización de hipótesis y objetivos del estudio, identificación de colaboradores para un equipo de investigación multidisciplinario, opciones de diseño de estudio, fuentes de datos y métodos de recopilación, y métodos analíticos Ilustramos estos conceptos a través de la presentación de un estudio de caso de los impactos en la salud asociados con la aplicación de biosólidos en la tierra. Finalmente, discutimos las oportunidades para aplicar un enfoque de OH para identificar soluciones a los problemas de salud global actuales y la necesidad de fuentes de financiamiento interdisciplinarias para fomentar un enfoque de OH para la investigación”. 100_percent_similarity.pyResultado del detector de plagio en el artículo copiado y pegado (Imagen del autor) Después de ejecutar el sistema, obtenemos una puntuación de similitud de 1, que es una coincidencia del 100 % con un artículo existente. Esto es obvio porque tomamos exactamente el mismo artículo de la base de datos.artículo francésEste artículo está disponible gratuitamente en el sitio web francés de agricultura.french_article_to_check = “””Les Réseaux d’Innovation et de Transfert Agricole (RITA) ont été créés en 2011 pour mieux connecter la recherche et le développement agricole, intra et inter-DOM, avec un objectif d’accompagnement de la diversification des productions locales. Le CGAAER a été chargé d’analyser ce dispositif et de proponer des pistes d’action pour améliorer la chaine Recherche – Formation – Innovation – Développement – Transfert dans les outre-mer dans un contexte d’agriculture durable, au profit de l’accroissement de l’autonomie alimentaire.”””plagiarism_analysis_french_article.pyResultado del detector de plagio en el artículo francés (Imagen del autor) No hay plagio en esta situación porque el puntaje de similitud es menor que el umbral.artículo alemánImaginemos que a algunos les gustó mucho el quinto artículo de la base de datos y decidieron traducirlo al alemán. Ahora veamos cómo el sistema juzgará ese artículo.german_article_to_check = “””Derzeit ist eine Reihe strukturell und funktionell unterschiedlicher temperaturempfindlicher Elemente wie RNA-Thermometer bekannt, die eine Vielzahl biologischer Prozesse in Bakterien, einschließlich der Virulenz, steuern. Auf der Grundlage einer Computer- und thermodynamischen Analyze der vollständig sequenzierten25 Salmonella von enterica-Isolaten wurden ein Algorithmus und Kriterien für die Suche nach potenziellen RNA-Thermometern entwickelt. Er wird es ermöglichen, die Suche nach potentiellen Riboschaltern im Genom anderer gesellschaftlich wichtiger Krankheitserreger durchzuführen. Für S. enterica wurden neben dem bekannten 4U-RNA Hairpin-Loop-Strukturen identifiziert, die wahrscheinlich als weitere RNA-Thermometer fungieren.Sie erfüllen die notwendigen und hinreichenden Bedingungen für die Bildung von RNA-Thermometern und sind hochkonservative nichtkanonische Strukturen, da diese hochkonservativen Strukturen im Genom aller 25 Isolate von S. enterica gefunden wurden. Die Hairpins, die eine kreuzförmige Struktur in der supergewickelten pUC8-DNA bilden, wurden mit Hilfe der Rasterkraftmikroskopie sichtbar gemacht.”””plagiarism_analysis_german_article.pyResultado del detector de plagio en un artículo alemán (Imagen del autor) 97% de similitud: ¡esto es lo que capturó el modelo! El resultado es bastante impresionante. Este artículo es definitivamente un plagio. Felicitaciones, ahora tiene todas las herramientas para construir un sistema de detección de plagio más sólido, utilizando modelos BERT y de traducción automática combinados con similitud de coseno. Si le gusta leer mis historias y desea apoyar mi escritura, considere convertirse en un miembro medio. Con un compromiso de $ 5 al mes, desbloqueas acceso ilimitado a historias en Medium. Siéntete libre de seguirme en YouTube, Medium, Gorjeo, o decir hola en LinkedIn. ¡Siempre es un placer hablar sobre IA, ML, ciencia de datos, NLP y MLOps!Modelo MarianMT de HuggingFaceCódigo fuente del artículoAllen Institute for AI
Los días felices de la PDA y Blackberry han quedado definitivamente atrás, pero el factor…
Tutorial sobre cómo pronosticar usando un modelo autorregresivo en PythonFoto de Aron Visuals en UnsplashForecasting…
Si tienes un iPhone, los AirPods Pro son la opción obvia para escuchar música, ¡aunque…
Ilustración de Alex Castro / The Verge Plus nuevos rumores sobre el quinto Galaxy Fold.…
Se rumorea que los auriculares premium de próxima generación de Apple, los AirPods Max 2,…
El desarrollador Motive Studio y el editor EA han lanzado un nuevo tráiler de la…