Documentos de Académico
Documentos de Profesional
Documentos de Cultura
## Empezando
1. Pitón 3.6
- Esta configuración requiere que su máquina tenga instalado Python 3.6. puede consultar esta
URL https://www.python.org/downloads/ para descargar python. Una vez que haya descargado e
instalado python, deberá configurar las variables PATH (si desea ejecutar el programa python
directamente, las instrucciones detalladas se encuentran a continuación en la sección *cómo
ejecutar el software*). Para hacer eso, marque esto: https://www.pythoncentral.io/add-python-
to-path-python-is-not-recognized-as-an-internal-or-external-command/.
- La configuración de la variable PATH es opcional, ya que también puede ejecutar el programa sin
ella y, a continuación, se brindan más instrucciones sobre este tema.
2. La segunda y más fácil opción es descargar anaconda y usar su indicador de anaconda para
ejecutar los comandos. Para instalar anaconda, consulte esta URL
https://www.anaconda.com/download/
3. También deberá descargar e instalar los siguientes 3 paquetes después de instalar python o
anaconda de los pasos anteriores
- Sklearn (scikit-aprender)
- entumecido
- espía
- si ha elegido instalar python 3.6, ejecute los siguientes comandos en el símbolo del
sistema/terminal para instalar estos paquetes
```
```
```
La fuente de datos utilizada para este proyecto es el conjunto de datos LIAR que contiene 3
archivos con formato .tsv para prueba, entrenamiento y validación. A continuación se muestra una
descripción de los archivos de datos utilizados para este proyecto.
William Yang Wang, "Liar, Liar Pants on Fire": un nuevo conjunto de datos de referencia para la
detección de noticias falsas, que aparecerá en las actas de la 55.ª reunión anual de la Asociación
de Lingüística Computacional (ACL 2017), artículo breve, Vancouver, BC, Canadá , 30 de julio al 4
de agosto, ACL.
* Columna 2: la etiqueta. (La clase de etiqueta contiene: Verdadero, Mayormente cierto, Medio
cierto, Apenas cierto, FALSO, Pantalones de fuego)
* Columna 3: el enunciado.
* Columna 5: el hablante.
* Columna 9-13: el recuento total del historial de crédito, incluido el estado de cuenta actual.
Para simplificar las cosas, hemos elegido solo 2 variables de este conjunto de datos original para
esta clasificación. Las otras variables se pueden agregar más tarde para agregar algo más de
complejidad y mejorar las funciones.
A continuación, se muestran las columnas utilizadas para crear 3 conjuntos de datos que se han
utilizado en este proyecto
Verá que el conjunto de datos recién creado tiene solo 2 clases en comparación con las 6 de las
clases originales. A continuación, se muestra el método utilizado para reducir el número de clases.
* Original --Nuevo
* Verdadero --Verdadero
* Mayormente-verdadero -- Verdadero
* Falso -- Falso
* Pantalones-fuego -- Falso
El conjunto de datos utilizado para este proyecto estaba en formato csv llamado train.csv, test.csv
y valid.csv y se puede encontrar en el repositorio. Los conjuntos de datos originales están en la
carpeta "mentiroso" en formato tsv.
Este archivo contiene todas las funciones de procesamiento previo necesarias para procesar todos
los documentos y textos de entrada. Primero, leemos los archivos de datos de entrenamiento,
prueba y validación, luego realizamos un procesamiento previo como tokenización, derivación,
etc. Hay algunos análisis de datos exploratorios que se realizan como distribución de variables de
respuesta y controles de calidad de datos como valores nulos o faltantes, etc.
#### clasificador.py
Aquí hemos creado todos los clasificadores para predecir la detección de noticias falsas. Las
características extraídas se introducen en diferentes clasificadores. Hemos utilizado clasificadores
Naive-bayes, Regresión logística, SVM lineal, Descenso de gradiente estocástico y Bosque aleatorio
de sklearn. Cada una de las características extraídas se utilizó en todos los clasificadores. Una vez
ajustado el modelo, comparamos la puntuación f1 y comprobamos la matriz de confusión.
Después de ajustar todos los clasificadores, se seleccionaron los 2 modelos con mejor desempeño
como modelos candidatos para la clasificación de noticias falsas. Realizamos el ajuste de
parámetros implementando métodos GridSearchCV en estos modelos candidatos y elegimos los
parámetros de mejor rendimiento para estos clasificadores. Finalmente se utilizó el modelo
seleccionado para la detección de noticias falsas con probabilidad de verdad. Además de esto,
también hemos extraído las 50 características principales de nuestro vectorizador tfidf de
frecuencia de términos para ver qué palabras son más importantes en cada una de las clases.
También hemos utilizado Precision-Recall y curvas de aprendizaje para ver cómo se comporta el
conjunto de pruebas y entrenamiento cuando aumentamos la cantidad de datos en nuestros
clasificadores.
#### predicción.py
<p align="centro">
</p>
### Actuación
<p align="centro">
<img width="550" height="450"
src="https://github.com/nishitpatel01/Fake_News_Detection/blob/master/images/
LR_LCurve.PNG">
</p>
<p align="centro">
</p>
Como podemos ver, nuestros modelos con mejor rendimiento tenían una puntuación de f1 en el
rango de los 70. Esto se debe a la menor cantidad de datos que hemos utilizado con fines de
capacitación y la simplicidad de nuestros modelos. Para futuras implementaciones, podríamos
introducir algunos métodos de selección de características más, como etiquetado POS, word2vec y
modelado de temas. Además, también podríamos aumentar el tamaño de los datos de
entrenamiento. Ampliaremos este proyecto para implementar estas técnicas en el futuro para
aumentar la precisión y el rendimiento de nuestros modelos.
Una serie de ejemplos paso a paso que le indican que tiene que poner en marcha un entorno de
desarrollo
1. El primer paso sería clonar este repositorio en una carpeta en su máquina local. Para hacerlo,
debe ejecutar el siguiente comando en el símbolo del sistema o en git bash
```
```
2. Esto copiará todo el archivo de origen de datos, archivos de programa y modelo en su máquina.
3.
- Después de que todos los archivos se guarden en una carpeta en su máquina. Si eligió instalar
anaconda a partir de los pasos dados en las secciones ```Requisitos previos```, abra el indicador
de anaconda, cambie el directorio a la carpeta donde se guarda este proyecto en su máquina,
escriba el siguiente comando y presione Intro.
```
cd C:/la ruta de la carpeta del proyecto clonado va aquí/
```
- Una vez que esté dentro del directorio, llame al archivo ```prediction.py```. Para hacer esto,
ejecute el siguiente comando en el indicador de anaconda.
```
Python predicción.py
```
- Después de presionar Intro, el programa le pedirá una entrada que será una información o un
titular de noticias que desea verificar. Una vez que pegue o escriba el titular de la noticia,
presione Intro.
- Una vez que presione Intro, el programa tomará la entrada del usuario (titular de noticias) y el
modelo lo utilizará para clasificar en una de las categorías de "Verdadero" y "Falso". Además de
clasificar el titular de la noticia, el modelo también proporcionará una probabilidad de verdad
asociada con él.
4. Si ha elegido instalar python (y no configuró la variable PATH para ello), siga las instrucciones a
continuación:
- Después de clonar el proyecto en una carpeta en su máquina. Abra el símbolo del sistema y
cambie el directorio al directorio del proyecto ejecutando el siguiente comando.
```
```
- Una vez que localice la ruta ```python.exe```, debe escribir la ruta completa y luego la ruta
completa de la carpeta del proyecto con ```prediction.py``` al final. Por ejemplo, si ```python.exe```
está ubicado en ```c:/Python36/python.exe``` y la carpeta del proyecto está en
```c:/users/user_name/desktop/fake_news_detection/` ``, entonces su comando para ejecutar el
programa será el siguiente:
```
c:/Python36/python.exe C:/users/user_name/desktop/fake_news_detection/prediction.py
```
- Después de presionar Intro, el programa le pedirá una entrada que será una información o un
titular de noticias que desea verificar. Una vez que pegue o escriba el titular de la noticia,
presione Intro.
- Una vez que presione Intro, el programa tomará la entrada del usuario (titular de noticias) y el
modelo lo utilizará para clasificar en una de las categorías de "Verdadero" y "Falso". Además de
clasificar el titular de la noticia, el modelo también proporcionará una probabilidad de verdad
asociada con él. El modelo puede tardar unos segundos en clasificar la declaración dada, así que
espérelo.
5. Si eligió instalar python (y ya configuró la variable PATH para ```python.exe```), siga las
instrucciones:
- Abra el símbolo del sistema y cambie el directorio a la carpeta del proyecto como se mencionó
anteriormente ejecutando el siguiente comando
```
```
```
```
- Después de presionar Intro, el programa le pedirá una entrada que será una información o un
titular de noticias que desea verificar. Una vez que pegue o escriba el titular de la noticia,
presione Intro.
- Una vez que presione Intro, el programa tomará la entrada del usuario (titular de noticias) y el
modelo lo utilizará para clasificar en una de las categorías de "Verdadero" y "Falso". Además de
clasificar el titular de la noticia, el modelo también proporcionará una probabilidad de verdad
asociada con él.