2010-06-16 18 views
6

Devo fare un progetto per la mia tesi che riguarda l'intelligenza artificiale, il filtraggio collaborativo e i metodi di apprendimento automatico.Quale linguaggio devo usare per l'intelligenza artificiale su progetti web

Conosco solo PHP/mysq/JS, e non ci sono molti esempi di roba di intelligenza artificiale in PHP.

Ci sono alcuni libri su AI su Internet ma usano Java, Python.

Ora devo applicare le tecniche AI ​​sull'applicazione web.

Quale lingua devo scegliere java o python.

ho searhed su internet che posso chiamare classi Java all'interno del mio php in modo che può aiutare come come io sono molto bravo a php

Ho anche visto che Python può essere utilizzato anche con PHP e

Quindi, quale modo dovrei andare e più o meno quanto mi porterò per imparare java

ho fatto basi Java, ma che era 6 anni fa

+0

Se si conosce già JS, perché non utilizzare questo? Se insisti su uno degli altri, imparare Python è probabilmente più veloce di imparare Java. – Stephen

+0

Un po 'un duplicato di http://stackoverflow.com/questions/2495350/python-or-ruby-for-webbased-artificial-intelligence/2497026#2497026 –

risposta

6

Delle lingue che hai menzionato, probabilmente troverai gli strumenti più prontamente disponibili disponibili in Java, specialmente per le risorse di apprendimento automatico. Un buon esempio di questo è WEKA, che è uno strumento di data mining popolare scritto in Java.

Gli algoritmi di apprendimento automatico sono in genere qualcosa che non si desidera dover codificare da zero se non è necessario.Anche se si sarebbe certamente imparare molto da questo modo, si può prendere una notevole quantità di tempo per eseguire il debug in quanto spesso può essere difficile capire la differenza tra lavoro e il comportamento non-lavoro, per esempio, a volte possono non imparare con o senza bug e possono anche imparare i pattern con o senza bug.

mi aspetto per gli strumenti di prima, poi decidere sulla lingua con le opzioni dello strumento in mente.

+0

"Cercherei prima gli strumenti" - ehm, personalmente cercherò innanzitutto il metodo AI - c'è un'enorme differenza tra i modi in cui i sistemi basati su regole euristiche, le reti neurali, gli algoritmi genetici e la logica fuzzy funzionano - e tra come dovrebbe essere applicato – symcbean

4

è possibile utilizzare Java o Python. Sono disponibili molte risorse per entrambe le lingue.

Penso che i seguenti libri potrebbero essere adatti al tuo scopo.

Programming collective intelligence: building smart web 2.0

collective intelligence in action

+0

Fornire non so neanche, che renderà il mio lavoro più facile come so solo php. Sono sempre stato confuso con java. Devo imparare, solo core java o servi java, java bean o JSP, J2EE. –

+0

sì Dovresti avere una buona conoscenza del core Java –

6

È veramente importante che la lingua dei vostri libri usano? Voglio dire, non copierai gli esempi. E imparerai a riconoscere i costrutti di base (funzioni, loop, ecc.) Piuttosto velocemente. Non è come imparare a leggere il cinese.

Parlando di tempo di apprendimento, probabilmente non c'è una risposta definitiva a questa domanda. Penso che il meglio sia guardare esempi di codice sia in java che in python e vedere quale sembra più "carino", più facile e più familiare.

Buona fortuna!

-1

Non utilizzare mai PHP per AI. Java o C/C++ è il migliore, ma Python per uno sviluppo veloce.

+0

Perché qualcuno * non * usa PHP per AI? PHP è usato molto frequentemente per molte applicazioni AI basate sul web. – Coltin

+0

Ha usato PHP per frontend. Il backend è spesso java. – HKVN

3

È possibile utilizzare qualsiasi lingua che ti piace, a condizione che il server su cui è ospitato lo supporti. È possibile utilizzare HTML/JS come interfaccia utente e richiedere risultati dal server con richieste AJAX.

Quello che risponde a queste richieste sarebbe il codice AI, e questo può essere qualsiasi cosa tu voglia. PHP rende davvero semplice rispondere alle richieste AJAX. Dato che lo conosci già, ti consiglierei, anche se la tua intelligenza artificiale è molto sofisticata potresti voler andare con qualcosa di un po 'più efficiente, come C/C++.

0

Praticamente qualsiasi lingua può essere usato per codificare praticamente qualsiasi cosa - dato lo sforzo e la volontà. Ma Python ha più costrutti di programmazione funzionale che possono essere più utili quando si sta codificando l'intelligenza artificiale.

3

Quale lingua devo scegliere java o python.

qui ci sono alcune cose da considerare:

  • java è più ampiamente utilizzato (codice presumibilmente più matura "là fuori" da guardare - ma non ho testato che fuori)

  • pitone è più prolifico (si scrive più veloce in Python che in java), e di imparare il linguaggio per scrivere il codice che si desidera richiede meno in python che in java

  • pitone è multi-paradigma, java è (quasi) rigorosamente OOP

  • java è compilato (mentre python è scriptato); questo significa che java trova i tuoi errori nella compilazione; python all'esecuzione - questo può fare una grande differenza, a seconda del tuo stile di sviluppo/pratiche

  • java è più strettamente definito e molto più dettagliato di python. Dove in Java è necessario formalizzare i vostri contratti, in python si utilizza anatra tipizzazione.

Alla fine, la migliore che si possa fare è impostare un piccolo progetto, scrivere in entrambe le lingue e vedere cosa si finisce per preferire. Potresti anche trovare alcune restrizioni che non puoi spostarti in una delle lingue.

Alla fine tocca a voi :)

Edit: che non era un elenco esaustivo e ho cercato di essere il più imparziale, come ho potuto (ma che finisce qui: mi piacerebbe andare con python: D)

0

credo Python è bello per questo tipo di attività a causa della sua flessibilità. Utilizzando i NumPy/librerie SciPy insieme con una bella lib plottaggio (Chaco o matplotlib per esempio) che rende il flusso di lavoro di lavorare con i dati e gli algoritmi facile e si può laboratorio con il codice nell'interprete dal vivo in maniera quasi MATLAB-like. Cambia qui una riga di codice, pulisci i dati e guarda l'intera cosa in una finestra grafica senza doverti preoccupare di ricompilare, ecc.

Una volta stabilito gli algoritmi, è abbastanza semplice profilare il codice e spostare gli hotspot in C/C++ o Fortran per esempio se sei preoccupato per le prestazioni.

(si potrebbe anche scrivere la roba in Jython e scendete in java per i bit di performance-pesante del codice, se volete davvero essere sulla piattaforma JVM)

0

AI non è una lingua o di una specifica problema come la somma o la ricerca di una media di alcuni numeri. È l'intelligenza che verrà sviluppata artificialmente. E per rendere un sistema intelligente, specialmente un computer, puoi usare qualsiasi linguaggio che il computer possa capire e che ti trovi a tuo agio (C, Java, Python, C++). Un esempio di AI molto semplice potrebbe essere il tic-tac-toe. Questo gioco potrebbe essere fatto usando qualsiasi lingua tu voglia. L'importante è l'algoritmo che deve essere sviluppato. L'intelligenza artificiale è una vasta area e comprende molte cose come l'elaborazione delle immagini, la PNL, l'apprendimento automatico, la psicologia e altro. E, soprattutto, uno deve essere molto forte in Matematica, che è la parte più importante e integrante del softcomputing. Quindi, ancora una volta l'intelligenza artificiale non è un algoritmo piuttosto intelligente basato sulla pura matematica.

Problemi correlati