AI es un término general bajo el cual se reducen cosas como ML, Computer Vision, NLP, Deep Learning, etc.
Entonces, cuando dices que quieres una IA pequeña, la interpreto como un programa basado en ML o en el tema mencionado anteriormente.
Así que voy a proporcionarle un programa de análisis de sentimientos, basado en la calificación del usuario. (Precaución: Sin comentarios, sin explicación, intente entender el código, honestamente es muy sencillo. Pero aún así, si tiene algún problema, envíeme un mensaje … en cualquier momento lo ayudará con seguridad)
- ¿Crees que el surgimiento de la IA es una amenaza para el mundo en un futuro cercano?
- ¿Existe una forma más eficiente de construir redes neuronales artificiales que no sea usar objetos como nodos que hacen referencia a otros objetos de nodo?
- ¿Cómo sentirse sobre la IA en general? ¿Crees que realmente va a salvar a la humanidad o al final nos hará daño?
- ¿Cuáles son algunas aplicaciones no obvias de IA que serán enormes? La investigación médica y la conducción autónoma son ejemplos que obviamente crecerán. ¿Cuáles son algunos ejemplos que no notamos tanto?
- ¿Cómo se ganará la vida en el futuro si la inteligencia artificial se generaliza en la mayoría de las industrias?
solicitudes de importación
importar al azar
importar nltk
de nltk.corpus importar palabras vacías, wordnet
importar re
english_stops = set (stopwords.words (‘english’))
# las palabras a continuación se eliminaron intencionalmente, en base a pocas cosas analíticas
english_stops.add (‘.’)
english_stops.add (‘también’)
english_stops.add (‘get’)
def feature_extractor (documento):
características = {}
ls = []
para document_words en el documento:
para i, word in enumerate (document_words):
if ((word.lower () no en inglés_stops
y word.isalpha ())
o word.lower () == ‘no’):
syn = wordnet.synsets (word.lower ())
v = ‘no’
n = ‘no’
r = ‘no’
a = ‘no’
identidad = ‘desconocido’
si len (syn) es 0:
identidad = ‘desconocido’
continuar
más:
identidad = ‘conocido’
word = word.lower ()
características [‘contiene (% s) con identidad% s’% (word.lower (), identity)] = True
características de retorno
def pre_train_processor (enviado):
rd = re.sub (r ‘(^ @ | @) [^] +’, r “”, enviado)
rd = re.sub (r ‘(^ http | http) [^] +’, r “”, rd)
rd = re.sub (r ‘(\.) * \ 1’, r “.”, rd)
rep = re.findall (r ‘(\ w). * \ 1. * \ 1’, rd)
para ch en rep:
rd = re.sub (r ” + ch + ch + ch + r ‘+’, r ” + ch + ch, rd)
oraciones = nltk.sent_tokenize (rd)
oraciones = [nltk.word_tokenize (enviado) para enviado en oraciones]
devolver oraciones
def train_classifier ():
l = [ ‘1006589563512903396’, ‘1008324413029484000’, ‘1040575996755346578’, ‘1045137713186360887’, ‘7022552177697192106’, ‘674420826054740334’, ‘698451933787252187’, ‘414302334487557591’, ‘8944057146243258823’, ‘6946341970593481260’, ‘1431312376514000040’, ‘7864797704321962005’ , ‘7070434591968454556’]
app_id = ”
app_key = ”
final_resp = []
conjuntos de características = []
url = “http://developer.goibibo.com/api/voyager/get_hotels_by_cityid/?app_id=<Introduzca su ID de aplicación sin > & app_key = <ingrese su clave de aplicación con > & city_id = 6771549831164675055”
res = request.get (url)
resultado = res.json ()
print len (resultado [‘datos’]. claves ())
cuenta = 0
para la clave en el resultado [‘datos’]. claves ():
cuenta + = 1
recuento de impresiones
vid = result [‘data’] [key] [‘hotel_geo_node’] [‘_ id’]
#vid = data.get (‘vid’, ‘7022552177697192106’)
límite = “50”
url = “http://ugc.goibibo.com/api/HotelReviews/forWeb?app_id=” + app_id + “& app_key =” + app_key + “& vid =” + vid + “& limit =” + limit + “& offset = 0”
res = request.get (url)
reslt = res.json ()
tratar:
para revisión en reslt:
if review.get (‘reviewContent’) y len (review [‘reviewContent’]. strip ())> 10:
final_resp.append ({‘rating’: review [‘totalRating’], ‘text’: review [‘reviewContent’]})
excepto Excepción, e:
print str (e)
para x en final_resp:
data = feature_extractor (pre_train_processor (x [‘text’]))
si x [‘calificación’]> 3:
etiqueta = ‘bueno’
elif x [‘rating’] == 3:
etiqueta = ‘moderado’
más:
etiqueta = ‘malo’
featuresets.append ((datos, etiqueta))
imprime “longitud del conjunto de datos:” + str (len (featureets))
feat_len = int (0.8 * len (featureets))
train_set, test_set = featuresets [: feat_len], featuresets [feat_len:]
clasificador = nltk.NaiveBayesClassifier.train (train_set)
print nltk.classify.accuracy (clasificador, test_set)
clasificador de retorno
def check_pos_hotels (clasificador, datos):
oraciones = pre_train_processor (datos)
feat = feature_extractor (oraciones)
res = {}
res [‘features’] = feat
res [‘tag’] = classifier.classify (feat)
volver res
El script anterior usa la API de Goibibo para obtener reseñas y calificaciones.
Déjeme saber si usted necesita más información. Puedes seguirme en Quora (totalmente opcional: D)
¡¡prestigio!!:)