Es curioso que preguntes … He estado pensando en hacer algo como esto, pero me he centrado en utilizar el software de código abierto existente y los recursos de datos disponibles de forma gratuita, junto con las API en la nube. Con ese fin, algunas de las “cosas” que consideraría comenzar incluyen:
Apache OpenNLP – Procesamiento del lenguaje natural, sería parte del front-end para reconocer preguntas e interpretarlas. También es útil en el backend como parte del proceso de extracción de conocimiento de fuentes de datos textuales.
Apache Stanbol: utiliza OpenNLP y otras herramientas para analizar datos de texto y extraer conceptos semánticamente significativos.
- ¿La Inteligencia Artificial hará que el mundo sea más igualitario o más desigual?
- ¿Cuál es el estado actual de la investigación de inteligencia artificial?
- ¿Por qué Watson de IBM explotó tan mal el Final Jeopardy el 15 de febrero y por qué apostó tan bajo?
- ¿Es posible que con los recientes avances repentinos en IA realmente hayamos superado la singularidad descrita por Kurzweil y otros?
- ¿Podría haber una IA sin relación con el pensamiento humano?
Apache Tika: una biblioteca de análisis para extraer datos de varios formatos de archivo: HTML, PDF, Excel, Powerpoint, etc.
Apache Mahout: biblioteca de aprendizaje automático y minería de datos, diseñada para ser muy escalable al ejecutarse (principalmente) sobre Hadoop.
Apache UIMA: más herramientas para extraer significado de datos no estructurados. Originalmente parte de un producto de IBM y, si lo entiendo correctamente, en realidad es parte del verdadero Watson.
Apache Hadoop – Biblioteca Map / Reduce para escalar la computación en un clúster
Apache Giraph: un motor de procesamiento “Big Graph”. Personalmente sospecho que representar el conocimiento como gráficos es más cercano a cómo funciona el cerebro humano, y que los algoritmos de correspondencia de gráficos serán una gran parte del desarrollo de IA que parecen “más inteligentes”. Giraph es un enfoque escalable para procesar gráficos muy grandes.
Posiblemente algunos de los proyectos de OpenCog.
Biblioteca dANN AI
JGAP – Paquete de algoritmos genéticos de Java
jFuzzyLogic: un motor de lógica difusa para Java.
IBM también ha reconocido públicamente que Watson usa Prolog internamente [1], lo que me parece razonable. Hay una serie de buenas implementaciones de OSS Prolog para elegir, que incluyen:
SWI-Prolog
Ciao Prolog
GNU Prolog
En términos de fuentes de datos, un punto de partida obvio parecería ser Wikipedia y / o DBpedia. También hay OpenCyc, UMBEL, YAGO, etc.
[1]: Watson y Prolog: ¡o de vuelta al futuro! (Bernie Michalik)