/Detector-de-Plagio

Detector de Plagio realizado para la materia Procesamiento del Lenguaje Natural. UTN-FRBA a cargo del docente Mg. Ing. Hernán Borré

Primary LanguageJupyter NotebookMIT LicenseMIT

Detector de Plagio

Trabajo Práctico realizado para la materia Procesamiento del Lenguaje Natural, de UTN-FRBA a cargo de Mg. Ing. Hernán Borré.

Objetivos:

  • Detectar plagio entre trabajos prácticos de una materia
  • Detectar plagio entre un trabajo práctico y la Web
  • Detectar plagio entre un trabajo práctico y libros de la materia.

Herramientas y conceptos utilizados:

  • Lemmatize
  • Stemming
  • Stop Words
  • Latent Dirichlet Allocation
  • Naive Bayes for Text Classification
  • Word Embeddings
  • Word Mover's Distance
  • Named Entity Recognition
  • Part of Speech
  • Regular Expressions
  • Unigrams/Bigrams/Trigrams
  • Web Scrapping
  • Topic Modeling
  • Text Similarity
  • Text Extracting
  • Text Preprocessing
  • Unit testing
  • Persistent data
  • Multiprocessing

Librerías utilizadas:

  • Textract
  • Gensim
  • Spacy
  • NLTK
  • Click
  • Unittest
  • Multiprocessing
  • Pdfminer
  • Python-pptx
  • Docx
  • Logging
  • Firebase
  • Pandas
  • Numpy
  • Scikit Learn
  • Matplotlib
  • Jupyter Notebooks

Estructura del Proyecto

├── books
│   ├── La larga cola $ Chris_Anderson_La_economia_Long_Tail.pdf
│   ├── La nueva economia $ Kotler_P_and_Armstrong_G_2008_Fundamento.pdf
│   ├── La sociedad de costo marginal cero $ la sociedad de costo marginal cero.pdf
│   ├── Sistemas Emergentes $ Steven_Johnson_Sistemas_emergentes_O_que_tienen_en.pdf
│   └── Wikinomics $ Wikinomia.pdf
├── data
│   ├── accuracy.nv
│   ├── books.csv
│   ├── classes.nv
│   ├── class_probabilities.nv
│   ├── dataset.csv
│   ├── features_by_class.nv
│   ├── frequencies.nv
│   ├── lda_model
│   ├── lda_model2
│   ├── lda_model2.expElogbeta.npy
│   ├── lda_model2.id2word
│   ├── lda_model2.state
│   ├── lda_model.expElogbeta.npy
│   ├── lda_model.id2word
│   ├── lda_model.state
│   └── scrapped.csv
├── Detector de Plagio.pdf
├── keyed_vectors
│   ├── complete.kv
│   └── complete.kv.vectors.npy
├── labeled_dataset
│   
├── logs
├── LICENCE.md
├── README.md
├── run.sh
├── run_tests.sh
├── service_account_key.json
├── src
│   ├── document.py
│   ├── latent_dirichlet_allocation.ipynb
│   ├── main.py
│   ├── models
│   │   ├── lda_utils.py
│   │   ├── naive_bayes_utils.py
│   ├── naive_bayes.ipynb
│   ├── prepare_dataset.ipynb
│   ├── __pycache__
│   │   └── document.cpython-38.pyc
│   ├── repository
│   │   ├── csv_tools.py
│   │   ├── firebase_admin.py
│   │   ├── __init__.py
│   ├── scrapper.ipynb
│   ├── tests
│   │   ├── csv_tests.py
│   │   ├── data_processing_tests.py
│   │   ├── dictionary_tests.py
│   │   ├── file_manager_tests.py
│   │   ├── firebase_tests.py
│   │   ├── module_fix.py
│   │   ├── run_tests.py
│   │   └── text_extracting_tests.py
│   ├── util
│   │   ├── count_vectorizer.py
│   │   ├── data_cleaning.py
│   │   ├── doc2string.py
│   │   ├── exceptions.py
│   │   ├── file_manager.py
│   │   ├── generic_document.py
│   │   ├── graphics
│   │   │   ├── bar.py
│   │   │   ├── lda_triangle.py
│   │   │   └── word_cloud.py
│   │   ├── __init__.py
│   │   ├── log.py
│   │   ├── pdf2string.py
│   │   ├── ppt2string.py
│   │   ├── prompt_utils.py
│   │   └── scrapper.py
│   └── word_mover_distance.ipynb
└── unit_testing_documents
    ├── lorem_ipsum.doc
    ├── lorem_ipsum.docx
    ├── lorem_ipsum.pdf
    ├── lorem_ipsum.pptx
    └── lorem_ipsum.rtf

Output de ejemplo

Documentos para analizar:

	Documentos: 305
	Webs scrappeadas: 46
	Libros: 5


Potenciales nombres del alumno:

	- Posibilidad
	- ******** Rodrigo
	- Ley de Pareto


Analizando el tema del texto:

Naive Bayes -> La larga cola  [98.36% de efectividad]

Latent Dirichlet Allocation -> [largo cola ofrecer venta regla cliente demanda nicho oferta minorista] -> [probabilidad del 97.05%]

Filtrando documentos por tema...

	Documentos a analizar: 50
	Textos scrappeados a analizar: 4
	Libros a analizar: 1

Presione una tecla para comenzar con el análisis de plagio.
Porcentaje de plagio: 48.64%
------------------------------------------------------------------------------------------------------------------------------------------------------
Párrafo plagio: [Párrafo #58]
Democratizar las herramientas de producción: La gente puede producir sin necesidad de acudir a profesionales, a diferencia de lo que sucedía tiempo atrás. Es posible editar video, convertir audio y realizar impresiones a color, entre muchas cosas, a un costo accesible y desde cualquier hogar.



Párrafo de referencia: [TP 1 - Marketing en Internet y Nueva Economía - Lucas ******.docx][Párrafo #49]
 La primera fuerza es democratizar las herramientas de producción. En consecuencia, el universo de contenidos disponibles ahora está creciendo con más rapidez que nunca. Esto es lo que extiende la larga cola hacia la derecha, multiplicando el número de bienes disponibles. Resultado: más productos, lo que extiende la larga cola.


Distancia: 2.0249130364836314
------------------------------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------------------------------
Párrafo plagio: [Párrafo #24]
La economía basada en el éxito, denominada de escasez, es la creación de una época en la que no había suficiente espacio para hacer que todo fuese accesible a todos: no había suficiente espacio de exhibición para todos los CD, DVD y videojuegos producidos; ni suficientes pantallas para proyectar todas las películas disponibles; ni suficientes canales para transmitir todos los programas de televisión; ni suficientes ondas hertzianas para emitir toda la música creada; ni tampoco había suficientes horas en el día para ofrecer todo a través de alguno de estos espacios. 



Párrafo de referencia: [TP 1 - Marketing.docx][Párrafo #37]
Cuando la economía se basaba en el éxito, dado que no había suficiente espacio para que todo sea accesible a todos, cuando no había suficientes pantallas para proyectar todas las películas disponibles, ni suficientes canales para transmitir todos los programas de televisión, ni tampoco había suficientes horas del día para ofrecer todo a través de alguno de estos espacios, esto era la economía de la escasez.


Distancia: 1.4548918182908754
------------------------------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------------------------------
Párrafo plagio: [Párrafo #60]
Reducir los costos de consumo mediante la democratización de la distribución: Gracias al internet y los filtros que ofrecen las páginas al momento de realizar búsquedas, las recomendaciones automáticas y personalizadas para cada usuario, y las recomendaciones y reseñas hechas por otros que ya han comprado el producto que uno busca, se reducen los costos de consumo: Se encuentra lo que se busca más rápido, se encuentran bienes que satisfagan las necesidades de uno a menor precio (ya que las alternativas de nicho ahora son fácilmente encontrables), se evita la frustración de comprar algo que termine por no ser lo esperado, etc.



Párrafo de referencia: [Tp2 ****** marketing en internet (2).docx][Párrafo #32]
Democratizar las herramientas de producción, es decir poner al alcance de todos, todo. Reducir los costes de consumo mediante esta democratización, es decir que todos puedan actuar como productores, y publicarlo, hacerlo accesible al consumidor. La tercera fuerza es conectar la oferta con la demanda, orientando la demanda hacia la larga cola, y pudiendo ofrecer a los consumidores los productos. 


Distancia: 1.954088581059449
------------------------------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------------------------------
Párrafo plagio: [Párrafo #9]
El seguimiento de las listas de productos más vendidos es una obsesión nacional. Nuestra cultura es una competición por la popularidad masiva. Nos fascinan los productos de gran éxito: fabricaros, elegirlos, hablar de ellos y contemplar su auge y decadencia.



Párrafo de referencia: [https://es.qaz.wiki/wiki/Long_tail][Párrafo #29]
Los factores del lado de la demanda que conducen a la cola larga pueden ser amplificados por las "redes de productos" que se crean mediante recomendaciones de hipervínculos entre productos. Un artículo de MIS Quarterly de Gal Oestreicher-Singer y Arun Sundararajan muestra que las categorías de libros en Amazon.com que son más centrales y, por lo tanto, están más influenciadas por su red de recomendaciones tienen distribuciones de cola larga significativamente más pronunciadas. Sus datos en 200 áreas temáticas muestran que duplicar esta influencia conduce a un aumento del 50% en los ingresos de la quinta parte de los libros menos populares. 


Distancia: 1.9162861104791806
------------------------------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------------------------------
Párrafo plagio: [Párrafo #17]
La larga estela o larga cola (en el original en inglés The Long Tail) fue una expresión popularizada por Chris Anderson en un artículo de la revista Wired de octubre de 2004 para describir determinados tipos de negocios y modelos económicos tales como Amazon o Netflix.1 2 Anderson elaboró el concepto en su libro The Long Tail: Why the Future of Business Is Selling Less of More.3 4 El término larga cola se utiliza normalmente en estadística en relación con distribuciones de riqueza o con el uso del vocabulario.



Párrafo de referencia: [https://es.wikipedia.org/wiki/Larga_cola][Párrafo #0]
La larga estela o larga cola (en el original en inglés The Long Tail) fue una expresión popularizada por Chris Anderson en un artículo de la revista Wired de octubre de 2004 para describir determinados tipos de negocios y modelos económicos tales como Amazon o Netflix.[1] [2] Anderson elaboró el concepto en su libro The Long Tail: Why the Future of Business Is Selling Less of More.[3] [4] El término larga cola se utiliza normalmente en estadística en relación con distribuciones de riqueza o con el uso del vocabulario. 


Distancia: 0.0
------------------------------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------------------------------
Oración plagio [Oración #5]
Nos fascinan los productos de gran éxito: fabricaros, elegirlos, hablar de ellos y contemplar su auge y decadencia.



Oración de referencia: [Chris_Anderson_La_economia_Long_Tail_TRUNCATED.pdf][Oración #455]
Nos fascinan los productos de gran éxito: fabricarlos, elegirlos, hablar de ellos y contemplar su auge y decadencia.


Distancia: 0.34250761071548874
------------------------------------------------------------------------------------------------------------------------------------------------------

Colores:

  • Rojo: Copiado
  • Amarillo: Similar
  • Verde: Parafraseo

Referencias y tutoriales utilizados:

Read Word Document:

Unit Testing in Python:

Read Power Point Document:

Read PDF:

Read Doc - RTF

Logging:

POS Tagging Spacy & NLTK

Naive Bayes implementation

Firebase

Count Vectorizer

Tokenizing Sentences

Name entity recognition:

Multiprocessing

Triangle

WMD

Word Embeddings in Text Similarity

Loading animation

Word Embeddings Model

Aitor Almeida, & Aritz Bilbao. (2018). Spanish 3B words Word2Vec Embeddings (Version 1.0) [Data set]. Zenodo. http://doi.org/10.5281/zenodo.1410403

Bilbao-Jayo, A., & Almeida, A. (2018). Automatic political discourse analysis with multi-scale convolutional neural networks and contextual data. International Journal of Distributed Sensor Networks, 14(11), 1550147718811827.