>> LUCAS FREITAS: Hey.
Bienvenue à tous.
Mon nom est Lucas Freitas.
Je suis un junior à [inaudible] l'étude informatique avec une spécialisation en
linguistique computationnelle.
Donc mon secondaire est dans la langue et la théorie linguistique.
Je suis vraiment excité d'apprendre que vous les gars un peu plus sur le terrain.
C'est une zone très excitant pour étudier.
Aussi avec beaucoup de potentiel pour l'avenir.
Donc, je suis vraiment heureux que vous les gars envisagent des projets dans
linguistique computationnelle.
Et je serai plus qu'heureux de conseiller l'un de vous si vous décidez de
poursuivre un de ceux.
>> Alors tout d'abord ce sont de calcul linguistique?
Donc linguistique computationnelle est l' intersection entre la linguistique et
informatique.
Alors, quelle est la linguistique?
Qu'est-ce que l'informatique?
Eh bien de la linguistique, ce nous prenons sont les langues.
Donc, la linguistique est en fait l'étude de langage naturel en général.
Langue si naturel - on parle de la langue que nous utilisons actuellement à
communiquer les uns avec les autres.
Donc, nous ne sommes pas exactement parler sur C ou Java.
Nous parlons plus sur l'anglais et Chinois et d'autres que nous
utiliser pour communiquer avec l'autre.
>> La chose difficile à ce sujet est que maintenant nous avons presque 7000
langues dans le monde.
Donc, il ya tout à fait une grande variété des langues que nous pouvons étudier.
Et puis vous pensez que c'est probablement très difficile à faire, par exemple,
traduction d'une langue à l' de l'autre, étant donné que vous avez
Près de 7000 d'entre eux.
Donc, si vous pensez faire de traduction d'une langue à l'autre, vous
avoir presque plus d'un million différentes combinaisons que vous pouvez
avoir de langue à langue.
Donc, il est vraiment difficile de faire des type de système exemple de traduction pour
chaque langue unique.
>> Ainsi, la linguistique traite avec la syntaxe, sémantique, pragmatique.
Les gars, vous ne devez pas exactement de savoir ce que sont ils.
Mais la chose très intéressante est que comme un locuteur natif, quand vous apprenez
langue que l'enfant, vous avez réellement apprendre toutes ces choses - syntaxe sémantique
et pragmatique -
par vous-même.
Et personne n'a à vous apprendre la syntaxe pour à comprendre comment les phrases sont
structurée.
Donc, c'est vraiment intéressant parce c'est quelque chose qui vient très
intuitivement.
>> Et qu'est-ce que vous prenez de l'informatique?
Eh bien, la chose la plus importante que nous avoir en informatique est d'abord
tout, l'intelligence artificielle et l'apprentissage de la machine.
Donc, ce que nous essayons de faire linguistique computationnelle, c'est enseigner
votre ordinateur comment faire quelque chose avec la langue.
>> Ainsi, par exemple, dans la machine traduction.
J'essaie d'enseigner comment mon ordinateur de savoir comment faire la transition d'un
langue à l'autre.
Donc, comme fondamentalement l'enseignement un ordinateur deux langues.
Si je fais le traitement du langage naturel, ce qui est le cas par exemple d'
Graphique Rechercher Facebook, vous enseigner à votre ordinateur comment comprendre
requêtes bien.
>> Donc, si vous dites "les photos de mon amis. "Facebook ne traitent pas que
que toute une chaîne qui a juste un tas de mots.
Il comprend réellement la relation entre "Photos" et "mes amis" et
comprend que "les photos" sont propriété de "mes amis."
>> Donc, cela fait partie de, par exemple, traitement du langage naturel.
Il essaie de comprendre ce est le rapport entre
les mots dans une phrase.
Et la grande question est, pouvez-vous enseigner un ordinateur à parler
une langue en général?
Qui est une question très intéressante à penser, comme si peut-être dans l'avenir,
vous allez être en mesure de parler à votre téléphone portable.
Un peu comme ce que nous faisons avec Siri, mais quelque chose comme, vous pouvez réellement
dites ce que vous voulez et le téléphone va tout comprendre.
Et il peut avoir des questions de suivi et continuer à parler.
C'est quelque chose de vraiment excitant, à mon avis.
>> Donc, quelque chose sur les langues naturelles.
Quelque chose de vraiment intéressant à propos langues naturelles est que, et ceci est
crédit à mon professeur de linguistique, Maria Polinsky.
Elle donne un exemple et je pense que c'est vraiment intéressant.
Parce que nous apprenons la langue à partir de laquelle nous sommes nés et alors notre natif
langue sorte de pousse sur nous.
>> Et fondamentalement, vous apprenez la langue de l'entrée minime, non?
Vous êtes juste entrée de votre les parents de ce que votre langue sons
aimez et que vous venez de l'apprendre.
Ainsi, il est intéressant parce que si vous regardez à ces phrases, par exemple.
Vous regardez, "Mary met sur un manteau tout fois qu'elle quitte la maison ".
>> Dans ce cas, il est possible d'avoir la mot «elle» se réfère à Marie, à droite?
Vous pouvez dire «Mary met sur un manteau chaque fois que Marie quitte le
maison. "si c'est très bien.
Mais alors, si vous regardez la phrase "Elle met une couche à chaque fois Marie
quitte la maison. "vous savez que c'est impossible de dire qu '«elle» est
référence à Marie.
>> Il n'ya aucun moyen de dire que «Marie met sur une couche à chaque fois que Marie quitte
la maison. "Il est donc intéressant car c'est le genre d'intuition
que chaque locuteur natif a.
Et personne n'a été enseigné que ce n'est la façon dont la syntaxe fonctionne.
Et que vous ne pouvez avoir ce «elle» référence à Marie, dans ce premier cas,
et en fait dans cette autre aussi, mais pas dans celui-ci.
Mais tout le monde sorte de se à la même réponse.
Tout le monde est d'accord sur ce point.
Il est donc très intéressant de voir comment bien vous ne connaissez pas toutes les règles
dans votre langue, vous sorte de comprendre comment le langage fonctionne.
>> Donc, la chose intéressante à propos naturelle langue, c'est que vous n'avez pas à
connaître toute la syntaxe de savoir si une phrase est grammatical ou non grammatical pour
la plupart des cas.
Qui vous fait penser que peut-être ce que qui se passe est que, grâce à votre vie, vous
juste garder de plus en plus Phrases dit de vous.
Et puis vous continuez mémorisation toutes les phrases.
Et puis, quand quelqu'un vous dit quelque chose, vous entendez cette phrase et
vous regardez votre vocabulaire des peines et de voir si
cette phrase est là.
Et si c'est là que vous dire que c'est grammaticale.
Si ce n'est pas vous dites que c'est grammatical.
>> Donc, dans ce cas, vous diriez, oh, si vous avez une énorme liste de tous
peines possibles.
Et puis, quand vous entendez une phrase, vous savez si c'est grammaticale ou
pas sur cette base.
Le fait est que si vous regardez une phrase, par exemple, "Le
cinq têtes CS50 FO cuit aveugles poulpe en utilisant une tasse de DAPA ". C'est
certainement pas une phrase que vous avez entendu avant.
Mais en même temps, vous savez que c'est à peu près grammaticale, non?
Il n'y a pas d'erreurs grammaticales et vous pouvez dire que
c'est une phrase possible.
>> Donc, il nous fait penser que le fait façon que nous apprenons la langue n'est pas seulement
en ayant une énorme base de données possible mots ou des phrases, mais plus de
la compréhension de la relation entre mots dans ces phrases.
Cela fait-il sens?
Donc, la question est, peut ordinateurs apprennent des langues?
Peut-on enseigner la langue aux ordinateurs?
>> Donc, nous allons penser à la différence entre un locuteur natif d'une langue
et un ordinateur.
Donc, ce qui se passe à l'orateur?
Eh bien, le locuteur natif apprend langue de l'exposition à elle.
Habituellement ses années de la petite enfance.
Donc, fondamentalement, vous avez juste un bébé, et vous continuez à parler de lui, et il
apprend juste à parler la langue, non?
Donc, vous êtes essentiellement de donner entrée pour le bébé.
Ainsi, vous pouvez prétendre qu'un ordinateur peut faire la même chose, non?
Vous pouvez simplement donner la langue en entrée de l'ordinateur.
>> Comme par exemple un tas de fichiers qui ont des livres en anglais.
Peut-être que c'est une façon que vous pourrait éventuellement donner une
ordinateur anglais, non?
Et en fait, si vous pensez à ce sujet, il vous faut peut-être un couple
jours pour lire un livre.
Pour un ordinateur, il prend une seconde pour regarder tous les mots dans un livre.
Ainsi, vous pouvez penser que peut-être juste ce l'argument de l'entrée de autour de vous,
ce n'est pas assez de dire que c'est quelque chose que seuls les humains peuvent faire.
Vous pouvez penser ordinateurs peut également obtenir l'entrée.
>> La deuxième chose est que les locuteurs natifs ont aussi un cerveau qui a
capacité d'apprentissage des langues.
Mais si vous pensez à ce sujet, un cerveau est une chose solide.
Lorsque vous êtes né, il est déjà réglé -
c'est votre cerveau.
Et comme vous grandissez, vous venez d'obtenir plus entrée de la langue et peut-être des éléments nutritifs
et d'autres choses.
Mais à peu près votre cerveau est une chose solide.
>> Ainsi, vous pouvez dire, eh bien, peut-être vous pouvez construire un ordinateur qui a un tas de
fonctions et méthodes qui imitent seulement capacité d'apprentissage des langues.
Donc, dans ce sens, on pourrait dire, bien, je peut avoir un ordinateur qui dispose de tous les
choses que je dois apprendre la langue.
Et la dernière chose est que natif orateur apprend par essais et erreurs.
Donc, fondamentalement, une autre chose importante dans l'apprentissage des langues est que vous nature
de savoir les choses en faisant généralisations de ce que vous entendez.
>> Donc, comme vous grandissez vous apprenez que certains mots sont plus comme des noms,
quelques autres sont des adjectifs.
Et vous n'avez pas à avoir une connaissance de la linguistique
pour comprendre cela.
Mais vous savez, il ya quelques mots sont positionnés dans une partie de la
phrase et quelques autres dans d'autres parties de la phrase.
>> Et que lorsque vous faites quelque chose qui est comme une phrase qui n'est pas correct -
peut-être en raison d'une généralisation de cours par exemple.
Peut-être que lorsque vous êtes de plus en plus, vous remarquerez que le pluriel est habituellement
formé en mettant un S à la fin du mot.
Et puis, vous essayez de faire le pluriel de "cerf" que "cerfs" ou "dent" que
"tooths." Alors vos parents ou quelqu'un que vous corrige et dit, non, la
pluriel de "cerf" est "cerf", et la pluriel de "dent" est "dents." Et alors
vous apprenez les choses.
Alors que vous apprenez de tâtonnements.
>> Mais vous pouvez aussi le faire avec un ordinateur.
Vous pouvez avoir quelque chose qui s'appelle l'apprentissage par renforcement.
Qui est fondamentalement comme donnant une un ordinateur récompense chaque fois que c'est le cas
quelque chose correctement.
Et il donne l'opposé d'une récompense et quand il fait quelque chose de mal.
Vous pouvez voir que si vous allez à Google Translate et vous essayez de
traduire une phrase, il vous demande de commentaires.
Donc, si vous dites, oh, il ya une meilleure traduction de cette phrase.
Vous pouvez taper et puis si un grand nombre de les gens continuent à dire que c'est une meilleure
traduction, il apprend juste que ça doivent utiliser que la traduction à la place de
celui qu'il donnait.
>> Donc, c'est une question très philosophique pour voir si les ordinateurs vont être
capable de parler ou non à l'avenir.
Mais j'ai bon espoir qu'ils peuvent juste, fondée sur ces arguments.
Mais c'est un peu plus d'une philosophique question.
>> Ainsi, alors que les ordinateurs ne peuvent pas encore parler, quelles sont les choses que nous pouvons faire?
Certaines choses sont vraiment cool classification de données.
Ainsi, par exemple, vous savez les gars que les services de courrier électronique font, pour
exemple, le filtrage des spams.
Donc, lorsque vous recevez un spam, il essaie de filtrer dans une autre boîte.
Alors, comment fait-elle cela?
Ce n'est pas comme l'ordinateur sait juste adresses e-mail que sont l'envoi de spam.
Donc, il est plus basé sur le contenu de le message, ou peut-être le titre, ou
peut-être un modèle que vous avez.
>> Donc, en gros, ce que vous pouvez faire est d'obtenir une Beaucoup de données d'e-mails qui sont anti-spam,
e-mails qui ne sont pas du spam, et d'apprendre ce que genre de modèles que vous avez dans le
ceux qui sont du spam.
Et cela fait partie du calcul linguistique.
C'est ce qu'on appelle la classification des données.
Et nous allons en fait voir un exemple de ce que dans les prochaines diapositives.
>> La deuxième chose est la langue naturelle traitement qui est la chose que l'
Graphique Recherche fait de laisser vous écrivez une phrase.
Et elle veut croire que vous comprenez ce est le sens et donne
vous un meilleur résultat.
En fait, si vous allez sur Google ou Bing et vous recherchez quelque chose comme Lady
La hauteur de Gaga, vous allez effectivement pour obtenir 5 '1 "au lieu de l'information
de son parce qu'il comprend réellement ce que vous parlez.
Cela fait donc partie des ressources naturelles traitement du langage.
>> Ou encore lorsque vous utilisez Siri, première vous avez un algorithme qui tente de
traduire ce que vous dites en mots, dans le texte.
Et puis il essaie de traduire que dans un sens.
Donc, tout cela fait partie de naturel traitement du langage.
>> Ensuite, vous avez la traduction automatique -
qui est en fait un de mes favoris -
qui est juste la traduction de l' une langue à l'autre.
Ainsi, vous pouvez penser que lorsque vous faites Traduction automatique, vous avez
possibilités infinies de phrases.
Il n'y a donc aucun moyen de stocker seulement chaque traduction unique.
Donc, vous devez venir avec intéressant algorithmes puissent
traduire chaque unique phrase d'une certaine façon.
>> Les gars, vous avez des questions à ce jour?
Non?
OK.
>> Alors qu'est-ce que nous allons voir aujourd'hui?
Tout d'abord, je vais parler de le problème de classification.
Donc celui que j'étais dire à propos du spam.
Ce que je vais faire est, paroles données une chanson, vous pouvez essayer de comprendre
avec une forte probabilité qui est le chanteur?
Disons que j'ai des chansons de Lady Gaga et Katy Perry, si je vous donne un
nouvelle chanson, pouvez-vous déterminer si c'est Katy Perry ou Lady Gaga?
>> La seconde, je vais juste parler sur le problème de la segmentation.
Donc je ne sais pas si vous savez, mais Asiatique chinois, le japonais, l'autre de l'Est
langues et d'autres langues en général, n'ont pas
espaces entre les mots.
Et puis, si vous pensez à la façon dont votre type d'ordinateur d'essais de
comprendre le traitement du langage naturel, il se penche sur les mots et
essaie de comprendre les relations entre eux, non?
Mais alors, si vous avez chinois, et vous ont zéro espaces, il est vraiment difficile de
savoir quelle est la relation entre termes, parce qu'ils n'ont pas d'
mots d'abord.
Donc, vous avez à faire quelque chose qui s'appelle segmentation qui signifie simplement mettre
espaces entre ce qu'on appellerait mots dans ces langues.
Donner un sens?
>> Et puis nous allons parler de la syntaxe.
Alors juste un peu de naturel traitement du langage.
Ça va être juste un aperçu.
Donc, aujourd'hui, essentiellement ce que je veux faire est vous donner les gars un peu d'un
l'intérieur de ce que sont les possibilités que vous pouvez faire avec de calcul
linguistique.
Et puis, vous pouvez voir ce que vous pensez est cool entre ces choses.
Et peut-être que vous pouvez penser d'un projet et venir me parler.
Et je peux vous donner des conseils sur la façon de le mettre en œuvre.
>> Donc syntaxe va être un peu Graphique sur la recherche et la machine
traduction.
Je vais donner un exemple de la façon dont vous pourriez, par exemple, de traduire
quelque chose du portugais à l'anglais.
Ça sonne bien?
>> Ainsi, en premier lieu, le problème de classification.
Je dirai que cette partie du séminaire va être le plus difficile
un juste parce que il va y être un peu de codage.
Mais ça va être Python.
Je sais que vous ne savez pas Python, Je vais expliquer sur le haut
niveau ce que je fais.
Et vous n'avez pas à s'occuper vraiment trop beaucoup sur la syntaxe parce que c'est
quelque chose que vous les gars peuvent apprendre.
OK?
Ça sonne bien.
>> Alors quel est le problème de la classification?
Donc, vous êtes donné quelques paroles de une chanson, et vous voulez deviner
qui chante il.
Et cela peut être pour tout type d'autres problèmes.
Ainsi, il peut être, par exemple, vous avez une campagne présidentielle et vous avez une
discours, et vous voulez trouver si elle était, par exemple,
Obama ou Mitt Romney.
Ou vous pouvez avoir un tas d'e-mails et vous voulez savoir si elles sont
un spam ou non.
Donc, c'est juste une certaine classification données sur la base des mots
que vous avez là.
>> Donc, pour ce faire, vous devez faire quelques hypothèses.
Donc, beaucoup de linguistique computationnelle est de faire des hypothèses,
hypothèses généralement intelligents, de sorte que vous pouvez obtenir de bons résultats.
Essayer de créer un modèle pour elle.
Et puis l'essayer et voir si cela fonctionne, si elle vous donne une bonne précision.
Et si c'est le cas, alors vous essayer de l'améliorer.
Si ce n'est pas, vous êtes comme, OK, j'ai peut-être devrait faire une hypothèse différente.
>> Donc, l'hypothèse que nous allons faire est que l'artiste chante habituellement
sur un sujet plusieurs fois, et peut-être utilise des mots à plusieurs reprises juste
parce qu'ils y sont habitués.
Vous pouvez juste penser à votre ami.
Je suis sûr que vous les gars ont tous amis que dire de leur phrase de signature,
littéralement pour chaque phrase unique -
comme un mot spécifique ou une spécifique phrase que disent-ils pour
chaque phrase unique.
>> Et ce que vous pouvez dire, c'est que si vous voyez une phrase qui a une signature
phrase, vous pouvez deviner que probablement votre ami est le
un dire, non?
Donc vous faites cette hypothèse, puis c'est comme ça que vous créez un modèle.
>> L'exemple que je vais donner est sur comment Lady Gaga, par exemple, les personnes
dire qu'elle utilise "bébé" pour toutes ses chansons numéro un.
Et en fait, c'est une vidéo qui montre en lui disant le mot "bébé" pour
différentes chansons.
>> [VIDEO LECTURE]
>> - (CHANT) Bébé.
Bébé.
>> [FIN LECTURE VIDÉO-
>> LUCAS FREITAS: Alors il n'y a, je pense, 40 chansons ici où elle dit l'
mot «bébé». Ainsi, vous pouvez deviner essentiellement que si vous voyez une chanson qui a
le mot «bébé», il ya une certaine grande probabilité que c'est Lady Gaga.
Mais nous allons essayer de développer cette encore plus formellement.
>> Ce sont donc des paroles de chansons de Lady Gaga et Katy Perry.
Donc vous regardez Lady Gaga, vous voyez qu'ils avoir beaucoup d'occurrences de «bébé», un
beaucoup de situations de "façon." Et alors Katy Perry a beaucoup d'occurrences de
"L',« beaucoup d'occurrences de «feu».
>> Donc, fondamentalement, ce que nous voulons faire est, vous obtenez un lyrique.
Disons que vous avez un lyrique pour une chanson qui est "bébé" juste "bébé". Si
vous obtenez juste le mot «bébé», et ce est l'ensemble des données que vous avez de
Lady Gaga et Katy Perry, qui serait vous devinez est la personne
qui chante la chanson?
Lady Gaga ou Katy Perry?
Lady Gaga, non?
Parce qu'elle est la seule qui dit "Bébé". Cela semble stupide, non?
OK, c'est vraiment facile.
Je suis simplement en regardant les deux chansons et de Bien sûr, elle est la seule qui a
"Bébé".
>> Mais que faire si vous avez un tas de mots?
Si vous avez une réelle lyrique, quelque chose comme "bébé, je viens
allé voir un [? FT?]
conférence ", ou quelque chose comme ça, et alors vous avez réellement à comprendre -
sur la base de tous ces mots -
qui est l'artiste qui a probablement chanté cette chanson?
Essayons donc de développer un peu plus loin.
>> OK, donc basé uniquement sur les données que nous obtenu, il semble que Gaga est probablement
le chanteur.
Mais comment pouvons-nous écrire ce de façon plus formelle?
Et il va y avoir un peu de peu de statistiques.
Donc, si vous êtes perdu, essayez juste pour comprendre le concept.
Ce n'est pas grave si vous comprenez les équations parfaitement bien.
Tout cela va être en ligne.
>> Donc, fondamentalement, ce que je calcul est le probabilité que cette chanson est par
Lady Gaga étant donné que -
si cette barre moyens étant donné que -
J'ai vu le mot «bébé». Cela fait-il sens?
Donc, je suis en train de calculer cette probabilité.
>> Il ya donc ce théorème appelé Théorème de Bayes qui dit que le
probabilité de A B donné, est la probabilité de B donné une fois,
probabilité de A, au-dessus de la probabilité de B. C'est une longue équation.
Mais ce que vous devez comprendre de c'est que c'est ce que je veux
calculer, non?
Ainsi, la probabilité que cette chanson est par Lady Gaga étant donné que j'ai vu le mot
"Bébé".
>> Et maintenant, ce que je veux est la probabilité du mot "bébé" donné
que je n'ai Lady Gaga.
Et qu'est-ce que, fondamentalement?
Qu'est-ce que cela signifie est, quelle est la probabilité de voir le mot "bébé"
dans les paroles de Gaga?
Si je veux calculer que dans un très façon simple, c'est juste le nombre de
fois que je vois "bébé" sur le nombre total des mots dans les paroles de Gaga, non?
Quelle est la fréquence que je vois ce mot dans le travail de Gaga?
Donner un sens?
>> Le deuxième terme est la probabilité de Gaga.
Qu'est-ce que ça veut dire?
Cela signifie essentiellement, ce qui est la probabilité de classer
quelques paroles que Gaga?
Et c'est un peu bizarre, mais Pensons d'un exemple.
Donc, disons que la probabilité de avoir «bébé» dans une chanson est la même
pour Gaga et Britney Spears.
Mais Britney Spears a deux fois plus de chansons que Lady Gaga.
Donc, si quelqu'un vous donne juste au hasard paroles de "bébé", la première chose que vous
regarder est, quelle est la probabilité de avoir «bébé» dans une chanson Gaga, "bébé"
dans une chanson de Britney?
Et c'est la même chose.
>> Ainsi, la deuxième chose que vous verrez est, bien, quelle est la probabilité de
ces paroles par lui-même étant une parole de Gaga, et quelle est la probabilité de
étant un lyrique Britney?
Donc, puisque Britney a tellement plus paroles que Gaga, vous feriez probablement
par exemple, eh bien, c'est probablement des paroles de Britney.
Donc, c'est pourquoi nous avons ce appeler ici.
Probabilité de Gaga.
Fait sens?
Est-ce que c'est?
OK.
>> Et le dernier est juste la probabilité de "bébé" qui ne fonctionne pas
vraiment d'importance tant que ça.
Mais c'est la probabilité de voir «bébé» en anglais.
Nous avons l'habitude ne nous soucions pas que beaucoup sur ce terme.
Cela fait-il sens?
Ainsi, la probabilité de Gaga est appelée la probabilité a priori
de la Gaga de classe.
Parce que cela signifie simplement que, ce qui est la probabilité d'avoir cette classe -
qui est Gaga -
juste en général, tout sans conditions.
>> Et puis quand j'ai probabilité de Gaga donné «bébé», nous l'appelons ainsi
larmoyants une probabilité parce que c'est la probabilité d'avoir
Gaga donné des preuves.
Donc, je vais vous donner la preuve que j'ai vu le mot bébé et
la chanson de sens?
OK.
>> Donc, si j'ai calculé que pour chaque des chansons pour Lady Gaga,
ce qui serait -
apparemment, je ne peux pas déplacer ce.
La probabilité de Gaga sera quelque chose comme 2 sur 24 fois 1/2,
plus de 2 sur 53.
Ce n'est pas grave si vous savez ce que ces chiffres viennent.
Mais c'est juste un nombre qui va à plus de 0, non?
>> Et puis quand je fais Katy Perry, la probabilité de "bébé" donné Katy est
déjà 0, non?
Parce qu'il n'y a pas de "bébé" dans Katy Perry.
Alors cela devient 0, et Gaga victoires, ce qui signifie qu'il est Gaga
probablement le chanteur.
Cela fait-il sens?
OK.
>> Donc, si je veux rendre cela plus officiel, Je peux réellement faire un modèle
plusieurs mots.
Alors disons que j'ai quelque chose comme, "bébé, je suis
sur le feu », ou quelque chose.
Ainsi, il a plusieurs mots.
Et dans ce cas, vous pouvez voir que «bébé» est en Gaga,
mais ce n'est pas à Katy.
Et "feu" est à Katy, mais ce n'est pas dans Gaga, non?
Il s'agit donc de faire plus compliqué, non?
Parce qu'il semble que vous avez presque avoir un lien entre les deux.
>> Donc ce que vous avez à faire est de supposer indépendance entre les mots.
Donc, fondamentalement, ce que cela signifie, c'est que Je suis juste calculais quel est le
probabilité de voir «bébé», ce qui est la probabilité de voir «je», et
"Am", et "on" et "feu" tous séparément.
Alors je multipliant chacun d'eux.
Et je vois quelle est la probabilité de voir la phrase entière.
Donner un sens?
>> Donc, fondamentalement, si j'ai juste un mot, ce que je veux trouver le arg max,
ce qui signifie, quelle est la classe qui est me donner le plus de chances?
Alors, quelle est la classe qui donne moi la plus forte probabilité de
probabilité de classe donné le mot.
Donc dans ce cas, étant donné Gaga "bébé". Ou Katy donné "bébé". Donner un sens?
>> Et de Bayes, qui équation que je l'ai montré,
nous créons cette fraction.
La seule chose est que vous voyez que la probabilité de la parole donnée
changements de classe en fonction sur la classe, non?
Le nombre d '"bébé" que j'ai dans Gaga est différente de Katy.
La probabilité de la classe aussi changements parce que c'est juste le nombre
de chansons chacun d'eux a.
>> Mais la probabilité que le mot lui-même va être la même pour tous les
artistes, non?
Ainsi, la probabilité que le mot est juste, quelle est la probabilité de
voir ce mot dans le Langue anglaise?
Il est donc le même pour tous.
Donc, puisque c'est constant, nous pouvons juste tomber cela et ne pas s'en soucier.
Donc, ce sera effectivement le équation que nous recherchons.
>> Et si j'ai plusieurs mots, je suis toujours avoir l'avant
probabilité ici.
La seule chose, c'est que je suis en multipliant la probabilité d'
tous les autres mots.
Je suis donc en multipliant chacun d'eux.
Donner un sens?
Il fait un peu bizarre mais signifie essentiellement, calculer l'avant de la classe, et
puis multiplier le résultat par la probabilité de chaque des mots se trouvant dans cette catégorie.
>> Et vous savez que la probabilité d'un parole donnée une classe va être l'
nombre de fois que vous voyez ce mot dans cette catégorie, divisée par le nombre d'
mots que vous avez en ce que classe en général.
Donner un sens?
C'est juste la façon dont «bébé» était de 2 sur le nombre de mots que
J'ai eu dans les paroles.
Il suffit donc de la fréquence.
>> Mais il est une chose.
Rappelez-vous comment je montrais que le probabilité de "bébé" étant paroles
de Katy Perry est 0 juste parce que Katy Perry n'avait pas «bébé» à tous?
Mais il semble un peu dur à juste tout simplement dire que les paroles ne peuvent pas être de
un artiste tout simplement parce qu'ils n'ont pas ce mot en particulier, à tout moment.
>> Donc, vous pourriez dire, eh bien, si vous n'ont pas ce mot, je vais
vous donnera une plus faible probabilité, mais je suis tout simplement pas se
vous donnera 0 immédiatement.
Parce que c'était peut-être quelque chose comme: "Feu, feu, feu, feu," qui est
totalement Katy Perry.
Et puis "bébé", et il va juste 0 tout de suite car il y avait un
"Bébé".
>> Donc, fondamentalement, ce que nous faisons quelque chose appelé Laplace lissage.
Et cela signifie juste que je donne une probabilité même les mots
qui n'existent pas.
Donc ce que je fais, c'est que quand je suis calculer cela, j'ajoute toujours 1 à
le numérateur.
Ainsi, même si le mot n'existe pas, dans ce cas, si c'est 0, je suis toujours
le calcul de ce que 1 sur le nombre total de mots.
Sinon, je reçois le nombre de mots J'ai et je rajoute 1.
Donc, je compte pour les deux cas.
Donner un sens?
>> Alors maintenant, nous allons faire un peu de codage.
Je vais devoir le faire assez rapidement, mais c'est juste important que vous
les gars à comprendre les concepts.
Donc, ce que nous essayons de faire est exactement la mise en œuvre de cette
chose que je viens de dire -
Je veux que vous mettiez paroles de Lady Gaga et Katy Perry.
Et le programme va être capable de dire si ces nouvelles paroles sont de Gaga
ou Katy Perry.
Donner un sens?
OK.
>> J'ai donc ce programme, je vais appeler classify.py.
Donc, c'est Python.
C'est un nouveau langage de programmation.
Il est très similaire dans certaines façons de C et PHP.
C'est la même chose parce que si vous voulez apprendre Python après sachant C, il est
vraiment pas beaucoup d'un défi juste parce que Python est beaucoup plus facile
à C, tout d'abord.
Et beaucoup de choses sont déjà mis en place pour vous.
Alors, comment comme PHP a des fonctions que trier une liste, ou ajouter quelque chose
à un tableau, ou blah, blah, blah.
Python a tous ceux aussi bien.
>> Donc, je vais juste expliquer rapidement comment nous pourrions faire la classification
problème pour ici.
Alors disons que dans ce cas, je dois paroles de Gaga et Katy Perry.
La manière que j'ai de ces paroles est que le premier mot des paroles est
le nom de l'artiste, et le reste est les paroles.
Alors disons que j'ai cette liste dont la première est paroles de Gaga.
Donc ici, je suis sur la bonne voie.
Et le prochain est Katy, et il a aussi les paroles.
>> Donc, c'est la façon dont vous déclarez une variable en Python.
Vous n'avez pas à donner le type de données.
Vous venez d'écrire "paroles" Un peu comme en PHP.
Donner un sens?
>> Alors quelles sont les choses que je dois calculer pour être en mesure de calculer le
probabilités?
Je dois calculer les "a priori" de chacune des différentes
les classes que j'ai.
Je dois calculer les «a posteriori» ou à peu près les probabilités de
chacun des différents mots que Je peux avoir pour chaque artiste.
Donc dans Gaga, par exemple, je vais d'avoir une liste de combien de fois je vois
chacun des mots.
Donner un sens?
>> Et enfin, je vais juste avoir un liste appelée «mots» qui va tout simplement
d'avoir le nombre de mots que je avoir pour chaque artiste.
Donc, pour Gaga, par exemple, quand je regarde les paroles, j'avais, je crois, 24
mots au total.
Donc, cette liste va juste avoir Gaga 24, et Katy autre numéro.
Donner un sens?
OK.
>> Alors maintenant, en fait, nous allons aller à la codification.
Donc en Python, vous pouvez réellement revenir un tas de différents
choses de fonction.
Donc, je vais créer cette fonction appelé «conditionnel», qui va
à retourner toutes ces choses, la «antérieures», les «probabilités», et la
«mots». Donc, «conditionnel», et c'est va être remise en "paroles".
>> Alors maintenant, je veux que tu fait écrire cette fonction.
Ainsi, la manière que je peux écrire ce fonction, c'est que je viens de définir ce
fonctionner avec "def". J'ai donc fait "def conditionnelle », et c'est en prenant
"Paroles". Et ce que cela va faire c'est, tout d'abord, j'ai mes a priori
que je veux calculer.
>> Ainsi, la manière que je peux faire est de créer un dictionnaire Python, qui
est à peu près la même chose que d'un hachage table, ou c'est comme un processus itératif
tableau en PHP.
C'est ainsi que je déclare un dictionnaire.
Et dans le fond ce que cela signifie, c'est que prieurs de Gaga est de 0,5, par exemple, si
50% des textes sont de Gaga, 50% sont de Katy.
Donner un sens?
Je dois donc comprendre comment pour calculer les prieurs.
>> Les prochains que je dois faire, aussi, sont les probabilités et les mots.
Donc, les probabilités de Gaga est la liste de toutes les probabilités que je
avoir pour chacun des mots de Gaga.
Donc, si je vais à des probabilités de Gaga «Bébé», par exemple, il va me donner
quelque chose comme 2 sur 24 dans ce cas.
Donner un sens?
Donc, je vais à "probabilités", aller à la Seau "Gaga" qui a une liste de tous les
les mots Gaga, alors je vais au "bébé" et je vois la probabilité.
>> Et enfin j'ai cette "Mots" dictionnaire.
Donc, ici, «probabilités». Et alors «mots». Donc, si je fais "mots", "Gaga"
ce qui va se passer, c'est que c'est va me donner 24, disant que je
avoir 24 mots dans des textes de Gaga.
Fait sens?
Donc, ici, "mots" égale dah-dah-dah.
Bien
>> Donc ce que je vais faire, c'est que je vais itération sur chacune des paroles, de sorte
chacune des chaînes qui J'ai dans la liste.
Et je vais calculer ces choses pour chacun des candidats.
Fait sens?
Je dois donc faire une boucle.
>> Donc en Python ce que je peux faire, c'est "pour la ligne dans les paroles. "La même chose que
"Pour chaque" déclaration en PHP.
Rappelez-vous comment il était si PHP je pouvais dire "pour chaque chanson que
ligne. "fait sens?
Donc, je prends chacune des lignes, dans ce cas, cette chaîne et la prochaine
chaîne si pour chacune des lignes que je suis vais faire, c'est d'abord, je vais
diviser cette ligne dans une liste de mots séparés par des espaces.
>> Donc, la chose cool à propos de Python est que Vous pouvez tout simplement Google comme "comment puis-je
découper une chaîne en mots? "Et c'est vais vous dire comment le faire.
Et la façon de le faire, c'est juste la ligne " = Line.split () "et il s'agit essentiellement d'
vais vous donner une liste avec chacun des mots ici.
Fait sens?
Alors, maintenant que je l'ai fait, je veux savoir qui est le chanteur de cette chanson.
Et pour faire ce que je viens d'obtenir le premier élément du tableau, non?
Donc, je peux juste dire que je "chanteur = Ligne (0) "Logique?
>> Et puis ce que je dois faire est d'abord tous, je vais mettre à jour le nombre de
mots j'ai sous la rubrique «Gaga». donc je suis va calculer le nombre de mots que je
avoir dans cette liste, non?
Parce que c'est le nombre de mots que j'ai dans les paroles et je vais juste
ajouter à la gamme «Gaga».
Cela fait-il sens?
Ne vous focalisez pas trop sur la syntaxe.
Pensez davantage sur les concepts.
C'est la partie la plus importante.
OK.
>> Donc, ce que je peux faire est si «Gaga» est déjà dans cette liste, "si chanteur
mots "ce qui signifie que je l'ai déjà avoir des mots par Gaga.
Je veux juste ajouter le supplément mots à ce sujet.
Donc ce que je fais est "mots (chanteur) + = Len (ligne) - 1 ".
Et puis je ne peux faire l' longueur de la ligne.
Alors, comment de nombreux éléments I disposer dans la matrice.
Et je dois faire moins 1 juste parce que le premier élément de la matrice est juste
un chanteur et ceux qui ne sont pas des paroles.
Fait sens?
OK.
>> "Sinon," cela signifie que je veux réellement insérer Gaga dans la liste.
Donc, je viens de faire "des mots (chanteur) = Len (ligne) - 1, "désolé.
Donc, la seule différence entre les deux lignes, c'est que celui-ci, ce n'est pas
J'existe, donc je suis initialisation.
Celui-ci je suis effectivement d'ajouter.
OK.
Donc, cela a été d'ajouter des mots.
>> Maintenant, je tiens à ajouter aux prieurs.
Alors, comment puis-je calculer les probabilités a priori?
Les prieurs peuvent être calculées par le nombre de fois.
Alors, combien de temps vous voyez que le chanteur parmi tous les chanteurs que vous
avoir, non?
Donc, pour Gaga et Katy Perry, dans ce cas, je vois Gaga
fois, Katy Perry fois.
>> Donc, fondamentalement, les prieurs de Gaga et pour Katy Perry serait
juste être une, non?
Vous avez juste combien de fois Je vois l'artiste.
Donc, c'est très facile à calculer.
Je peux juste quelque chose de semblable que comme "si chanteur a priori, «Je vais juste
ajouter 1 à leur boîte de prieurs.
Donc, "a priori (chanter)« + = 1 ", puis" autre " Je vais faire "a priori (chanteur)
= 1 ". Logique?
>> Donc, si elle n'existe pas, je viens de mettre comme une, sinon je viens d'ajouter 1.
OK, maintenant tout ce que j'ai laissé faire est également ajouter chacun des mots à l'
probabilités.
Je dois donc compter combien de fois Je vois chacun des mots.
Donc, je viens de faire un autre pour la boucle de la ligne.
>> Donc la première chose que je vais faire est vérifier si le chanteur a déjà une
probabilités tableau.
Donc, je vérifie si le chanteur ne encore un tableau de probabilités, je suis juste
va initialiser un pour eux.
Ce n'est même pas un tableau, désolé, c'est un dictionnaire.
Donc, les probabilités de la chanteuse va d'être un dictionnaire ouvert, donc je suis
juste initialiser un dictionnaire pour elle.
OK?
>> Et maintenant, je peux réellement faire une boucle for pour calculer chacun des mots "
probabilités.
OK.
Donc ce que je peux faire, c'est une boucle for.
Donc, je vais simplement parcourir sur le tableau.
Ainsi, la manière que je peux le faire en Python est "for i in range." De 1
parce que je veux commencer dans la deuxième élément parce que le premier est la
nom de la chanteuse.
Donc, d'une place à l' longueur de la ligne.
Et quand je ne range il fait passer de comme ici de 1 à len de l'
ligne moins 1.
Donc, il fait déjà ce truc de faire n moins 1 pour les tableaux qui est très
pratique.
Fait sens?
>> Donc, pour chacun d'eux, ce que je vais faire est, tout comme dans l'autre,
Je vais vérifier si le mot dans ce position dans la ligne est déjà en
probabilités.
Et puis comme je l'ai dit ici, les probabilités mots, comme dans j'ai mis
«probabilités (chanteur)".
Ainsi, le nom de la chanteuse.
Donc, si il est déjà en "Probabilit (chanteur)", cela signifie que je
tiens à ajouter 1 à, donc je vais faire "probabilités (chanteur)», et la
mot est appelé "ligne (i)».
Je vais ajouter 1 et "else" Je suis juste va initialiser à 1.
"Ligne (i)».
Fait sens?
>> Donc, j'ai calculé tous les tableaux.
Donc, maintenant tout ce que j'ai à faire pour celui-ci est de «renvoyer priori,
probabilités et des mots. "Allons voir s'il y en a, OK.
Il semble que tout fonctionne jusqu'à présent.
Donc, cela fait sens?
D'une certaine manière?
OK.
Alors maintenant, j'ai toutes les probabilités.
Alors maintenant, la seule chose que j'ai à gauche est juste pour avoir cette chose qui
calcule le produit de tous les probabilités quand je reçois les paroles.
>> Alors disons que je veux appeler cette fonction "classer ()" et la
chose que la fonction prend est juste un argument.
Disons que "Bébé, je suis sur le feu" et c'est va comprendre ce qui est la
probabilité que ce n'est Gaga?
Quelle est la probabilité que c'est Katie?
Ça sonne bien?
Donc, je vais juste avoir à créer un nouvelle fonction appelée «classer ()" et
ça va prendre un certain paroles aussi.
Et d'ailleurs les paroles J'ai aussi avoir à envoyer les prieurs, la
probabilités et les mots.
Donc, je vais envoyer les paroles, a priori, probabilités, mots.
>> Donc, cela prend paroles, a priori, probabilités, mots.
Alors, que fait-il?
Il est essentiellement va passer par tous les candidats possibles que vous
avoir en tant que chanteur.
Et où sont les candidats?
Ils sont dans les prieurs, non?
J'ai donc tout de ceux là.
Donc, je vais avoir un dictionnaire de tous les candidats possibles.
Et puis, pour chaque candidat à la a priori, donc cela signifie qu'il va
être Gaga, Katie si j'avais de plus, il serait plus.
Je vais commencer à calculer cette probabilité.
La probabilité que nous avons vu dans la PowerPoint est le temps avant la
produit de chacun des d'autres probabilités.
>> Donc, je peux faire la même chose ici.
Je peux juste faire probabilité est d'abord juste avant le.
Donc a priori du candidat.
Droite?
Et maintenant, je dois parcourir tout le mots que j'ai dans les paroles d'être
en mesure d'ajouter de la probabilité pour chacun d'eux, OK?
Ainsi, «pour mot dans les paroles" ce que je vais à faire est, si le mot est en
«probabilités (candidats)», qui signifie que c'est un mot que l'
candidat a dans leurs paroles -
par exemple, «bébé» de Gaga -
ce que je vais faire, c'est que la probabilité va être multiplié
par 1 plus les probabilités de le candidat à ce mot.
Et il a appelé "mot".
Cette divisé par le nombre de mots que j'ai pour ce candidat.
Le nombre total de mots que j'ai pour le chanteur que je suis à la recherche.
>> "Else". cela signifie qu'il s'agit d'un nouveau mot il serait comme par exemple
«Feu» pour Lady Gaga.
Donc, je veux juste faire une plus "Mot (candidat)".
Donc, je ne veux pas mettre ce terme ici.
>> Donc ça va être essentiellement copier et coller ce.
Mais je vais supprimer cette partie.
Donc, il va juste être une dessus.
Ça sonne bien?
Et maintenant, à la fin, je vais juste imprimer le nom du candidat et
la probabilité que vous avez de ayant le S sur leurs paroles.
Fait sens?
Et je n'ai même pas fait besoin de ce dictionnaire.
Fait sens?
>> Donc, nous allons voir si cela fonctionne réellement.
Donc, si je lance ce fait, il n'a pas fonctionné.
Attendez une seconde.
"Mots (candidats)", "les mots (candidats)», c'est
le nom du tableau.
OK Donc, il dit qu'il ya un bug pour le candidat à priori.
Permettez-moi tout simplement se détendre un peu.
OK.
Essayons.
OK.
>> Ainsi, il donne Katy Perry a cette cette probabilité de 10 fois à l'
moins 7, et Gaga a ce 10 fois au moins 6.
Donc, vous voyez, il montre que Gaga a une plus grande probabilité.
Donc, "Bébé, je suis sur le feu" est probablement une chanson Gaga.
Fait sens?
C'est donc ce que nous avons fait.
>> Ce code va être mis en ligne, si vous les gars peuvent le vérifier.
Peut-être en utiliser une partie pour si vous voulez faire un projet ou quelque chose de semblable.
OK.
C'était juste pour montrer ce calcul
code linguistique ressemble.
Mais maintenant, passons à plus substance de haut niveau.
OK.
>> Ainsi, les autres problèmes que j'ai parlait de -
le problème de la segmentation est le premier d'entre eux.
Donc, vous avez ici japonaise.
Et puis vous voyez que il n'y a pas d'espaces.
Donc, ce n'est signifie fondamentalement que c'est haut de la chaire, non?
Vous parlez japonais?
C'est le haut de la chaise, non?
>> Étudiant: Je ne sais pas ce que le kanji là est.
>> LUCAS FREITAS: C'est [PARLER JAPONAIS]
OK.
Donc, cela signifie essentiellement président du haut.
Donc, si vous aviez à mettre un espace il serait ici.
Et puis vous avez [? Ueda-san. ?]
Ce qui signifie essentiellement M. Ueda.
Et vous verrez que "Ueda" et vous avez une espace, puis "san". Donc, vous voyez que
ici vous "Ue", c'est comme de lui-même.
Et ici, il a un caractère à côté de lui.
>> Donc, ce n'est pas comme dans les langues caractères signifiant un mot afin que vous
vient de mettre beaucoup d'espaces.
Caractères se rapportent les uns aux autres.
Et ils peuvent être ensemble comme deux, trois, un.
Donc, vous avez fait de créer une sorte de façon de mettre ces espaces.
>> Et cette chose, c'est que chaque fois que vous obtenez les données de ces langues asiatiques,
tout vient non segmenté.
Parce que personne qui écrit japonais ou chinois écrit avec des espaces.
Chaque fois que vous l'écriture chinoise, Japonais vous suffit d'écrire tout
sans espaces.
Il n'a même pas de sens à mettre des espaces.
Alors quand vous obtenez les données de certains Langue Asie de l'Est, si vous voulez
réellement faire quelque chose avec ce vous devez premier segment.
>> Pensez à faire l'exemple de les paroles sans espaces.
Donc, les seules paroles que vous avez seront phrases, non?
Séparés par des points.
Mais ayant juste la phrase sera pas vraiment aider à donner des informations
de qui ces paroles sont de.
Droite?
Donc, vous devriez met places de première.
Alors, comment pouvez-vous faire cela?
>> Alors vient l'idée d'une langue modèle qui est quelque chose de vraiment
de calcul important pour linguistique.
Ainsi, un modèle de langage est essentiellement un table des probabilités que des spectacles
tout d'abord quelle est la probabilité d'avoir le mot dans une langue?
Donc, montrant comment un mot est fréquent.
Et puis en montrant aussi la relation entre les mots dans une phrase.
>> Donc, l'idée principale est que, si un étranger est venu à vous et dit une phrase
vous, quelle est la probabilité que, pour exemple, «c'est ma sœur [? FTE»?]
était la peine que la personne a dit?
Alors, évidemment, certaines phrases sont plus fréquents que d'autres.
Par exemple, «bonjour» ou «bonne nuit »ou« hé là, "est beaucoup plus
commune que la plupart des phrases que nous avons un Anglais.
Alors pourquoi ces phrases plus fréquents?
>> Tout d'abord, c'est parce que vous avez des mots qui sont plus fréquentes.
Ainsi, par exemple, si vous dites, le chien est grand, et le chien est gigantesque, vous
habituellement probablement entendre le chien est grand le plus souvent parce que «grand» est plus
fréquent en anglais que «gigantesque». Ainsi, l'un des
choses est la fréquence des mots.
>> La deuxième chose qui est vraiment important est juste l'
ordre des mots.
Ainsi, il est courant de dire "le chat est l'intérieur de la boîte. "mais vous n'avez pas l'habitude
voir dans "La boîte à l'intérieur est le chat." si vous voyez qu'il ya une certaine importance
dans l'ordre des mots.
Vous ne pouvez pas simplement dire que ces deux phrases ont la même probabilité
juste parce qu'ils ont les mêmes mots.
Vous avez fait de prendre soin sur commande ainsi.
Donner un sens?
>> Alors, que faisons-nous?
Donc ce que je pourrais essayer de vous obtenir?
J'essaie de vous ce que nous appeler les modèles n-grammes.
Alors modèles n-grammes essentiellement supposent que, pour chaque mot qui
vous avez dans une phrase.
C'est la probabilité d'avoir que mot il dépend non seulement de l'
la fréquence de ce mot dans la langue, mais aussi sur des mots qui
sont l'entoure.
>> Ainsi, par exemple, généralement lorsque vous voyez quelque chose comme sur ou à vous
probablement aller voir un nom après, non?
Parce que quand vous avez une préposition habituellement il prend un nom après.
Ou si vous avez un verbe qui est transitive vous êtes habituellement allez
un syntagme nominal.
Cela va donc avoir un nom quelque part autour de lui.
>> Donc, en gros, ce qu'il fait, c'est qu'il estime la probabilité d'avoir
mots à côté de l'autre, lorsque vous calculez la
probabilité d'une phrase.
Et c'est ce que la langue modèle est fondamentalement.
Il suffit de dire quelle est la probabilité d'avoir un spécifique
phrase dans une langue?
Alors pourquoi est-ce utile, fondamentalement?
Et d'abord ce qui est un modèle n-gramme, alors?
>> Donc signifie un modèle n-gramme que chaque mot dépend de la
prochaine N moins 1 mots.
Donc, en gros, cela signifie que si je regarde, par exemple, à la TF CS50 quand
Je le calcul de la probabilité de la phrase, vous serez comme "la
probabilité d'avoir le mot "la" fois la probabilité d'avoir "l'
CS50 "fois la probabilité d'avoir "Le TF CS50." Donc, en gros, je compte
tous les moyens possibles de l'étirer.
>> Et puis généralement lorsque vous faites cela, comme dans un projet, vous mettez N être
une valeur faible.
Ainsi, ont généralement bigrammes ou trigrammes.
Alors que vous venez de compter deux mots, un groupe de deux mots ou trois mots,
juste des problèmes de performance.
Et aussi parce que peut-être si vous avez quelque chose comme "Le TF CS50." Lorsque vous
ont «TF», il est très important que "CS50" est à côté de lui, non?
Ces deux choses sont généralement à côté de l'autre.
>> Si vous pensez de "TF", c'est probablement va avoir ce
classe il est TF'ing pour.
Aussi "la" est vraiment important pour CS50 TF.
Mais si vous avez quelque chose comme "Le CS50 TF est allé à la classe et ont donné leur
étudiants des bonbons. "" Candy "et" le " n'ont aucune relation vraiment, non?
Ils sont si éloignés les uns des autres que il n'a pas vraiment d'importance ce que
mots que vous avez.
>> Donc, en faisant un bigramme ou un trigramme, il signifie simplement que vous êtes en limitant
vous quelques mots qui sont autour.
Donner un sens?
Ainsi, lorsque vous voulez faire la segmentation, fondamentalement, ce que vous voulez faire est de voir
ce sont tous les moyens possibles que vous pouvez segmenter la phrase.
>> De telle sorte que vous voyez ce qui est le probabilité de chacune de ces phrases
existant dans la langue?
Donc, ce que vous faites, c'est comme, bien, laissez- moi d'essayer de mettre un espace ici.
Si vous mettez un espace, il et vous voyez ce qui est le
probabilité de cette phrase?
Alors vous êtes comme, OK, peut-être ce n'était pas très bon.
Alors, j'ai mis un espace là-bas et un espace il, et vous calculez le
probabilité maintenant, et vous voyez que c'est une probabilité plus élevée.
>> Donc, c'est un algorithme appelé le TANGO algorithme de segmentation, qui est
effectivement quelque chose qui serait vraiment cool pour un projet, qui
prend essentiellement texte non segmenté qui peut être japonais ou chinois ou peut-être
Anglais sans espaces et tente de mettre espaces entre les mots et il ne
que, en utilisant un modèle de langage, et essayer de voir ce qui est le plus
probabilité que vous pouvez obtenir.
OK.
Donc, c'est la segmentation.
>> Maintenant syntaxe.
Ainsi, la syntaxe est utilisée pour tant de choses en ce moment.
Donc, pour Graph Recherche, pour Siri pour à peu près n'importe quel type de naturel
traitement de la langue que vous avez.
Donc, ce sont les importantes choses sur la syntaxe?
Ainsi, les peines ont en général ce que nous appelons les constituants.
Qui sont un peu comme des groupes de mots qui ont une fonction dans la phrase.
Et ils ne peuvent pas vraiment être les uns des autres.
>> Donc, si je dis, par exemple, "aime Lauren Milo. «Je sais que" Lauren "est un
constituant et puis "amours Milo "est également une autre.
Parce que vous ne pouvez pas dire comme "Lauren Milo aime "avoir la même signification.
Il ne va pas avoir la même signification.
Ou je ne peux pas dire comme "Milo Lauren aime. "Tout n'a pas la même
ce qui signifie faire.
>> Donc, les deux choses les plus importantes sur syntaxe sont les types lexicaux qui est
essentiellement la fonction que avoir des mots eux-mêmes.
Donc, vous devez savoir que "Lauren" et "Milo" sont des noms.
"Love" est un verbe.
Et la deuxième chose importante est qu'ils sont les types particule.
Donc, vous savez que «aime Milo" est en fait une expression verbale.
Donc, quand je dis «Lauren», je sais que Lauren fait quelque chose.
Que fait-elle?
Elle adore Milo.
C'est donc l'ensemble rien.
Mais ses composants sont un nom et un verbe.
Mais ensemble, ils font un syntagme verbal.
>> Alors, que pouvons-nous faire en fait avec linguistique computationnelle?
Donc, si j'ai quelque chose pour exemple "les amis de Allison." Je vois si je
n'a un arbre syntaxique je sais que "Amis" est une expression de nom, il est un
nom, puis "Allison" est un préposition dans laquelle "de" est
une proposition et "d'Allison" est un substantif.
Qu'est-ce que je pourrais faire est d'enseigner mon ordinateur que quand j'ai un syntagme nominal et un
puis une préposition.
Donc, dans ce cas, "amis", puis "de Milo "Je sais que cela signifie que
NP2, le second, possède NP1.
>> Donc, je peux créer une sorte de relation, une sorte de fonction pour cela.
Donc, chaque fois que je vois cette structure, qui correspond exactement aux «amis de
Allison, "je sais que Allison détient les amis.
Alors les amis sont quelque chose que Allison a.
Fait sens?
Donc, c'est essentiellement ce que Graphique Recherche fait.
Il crée simplement des règles pour beaucoup de choses.
Ainsi, "les amis de Allison", "mes amis qui vivent à Cambridge »,« mes amis
qui vont à Harvard ". Elle crée des règles pour toutes ces choses.
>> Maintenant la traduction automatique.
Donc, la traduction automatique est également quelque chose de statistique.
Et en fait, si vous vous impliquez dans linguistique computationnelle, un grand nombre de
votre stuff va être statistiques.
Alors que je faisais l'exemple avec beaucoup de probabilités que j'étais
calcul, puis vous arrivez à ce très petit nombre qui est la finale
probabilité, et c'est ce que vous donne la réponse.
La traduction automatique utilise également un modèle statistique.
Et si vous voulez penser de la machine traduction dans le plus simple possible
Ainsi, ce que vous pouvez penser est juste traduire mot à mot, non?
>> Quand vous apprenez une langue pour le première fois, c'est généralement ce
vous faites, non?
Si vous voulez vous traduisez une phrase dans votre langue à la langue
vous apprenez, généralement d'abord, vous traduire chacun des mots
individuellement, et puis vous essayez de mettre les mots en place.
>> Donc, si j'ai voulu traduire ce, [PORTUGAIS DE PAROLE]
qui signifie «le chat blanc s'enfuit." Si je voulais traduire de
Portugais à l'anglais, ce que je pourrait faire, c'est, d'abord, je viens
traduire mot à mot.
Donc, "o" est "le", "gato", "chat" "Branco", "blanc", puis "fugio" est
"S'enfuit."
>> Alors j'ai tous les mots ici, mais ils ne sont pas dans l'ordre.
C'est comme "le blanc de chat s'enfuit" qui est grammatical.
Donc, je peux avoir une deuxième étape, qui va être de trouver l'idéal
position pour chacun des mots.
Donc, je sais que je veux réellement avoir "Chat blanc" au lieu de "chat blanc." Si
ce que je peux faire est le moyen le plus naïf serait de créer toutes les
permutations possibles d' mots, de positions.
Et puis voir qui on a l' probabilité plus élevée d'après
à mon modèle de langage.
Et puis, quand je trouve celui qui a la probabilité la plus élevée, ce qui est
probablement "le chat blanc s'est enfui," c'est ma traduction.
>> Et c'est un moyen simple d'expliquer comment un grand nombre de la traduction automatique
algorithmes fonctionnent.
Cela fait-il sens?
C'est aussi quelque chose de vraiment excitant que vous les gars peuvent peut-être explorer pour un
projet final, ouais?
>> ETUDIANT: Eh bien, vous avez dit qu'il était la manière naïve, alors c'est quoi
la voie non-naïf?
>> LUCAS FREITAS: La façon non naïf?
OK.
Donc, la première chose qui est mal à propos cette méthode est que je viens de traduire
mots, mot par mot.
Mais parfois, vous avez dit que peut avoir plusieurs traductions.
Je vais essayer de penser de quelque chose.
Par exemple, "manga" en boîte portugais soit "mutiler" ou "douille". Si
quand vous essayez de traduire mot par mot, on pourrait vous donner
quelque chose qui n'a pas de sens.
>> Donc, vous voulez vraiment vous regardez tous traductions des possibles
mots et voir, tout d'abord, quel est l'ordre.
Nous parlions de permutation les choses?
Pour voir toutes les commandes possibles et choisir celui avec le plus haut
probabilité?
Vous pouvez également choisir tous les possibles traductions pour chaque
mot et ensuite voir -
combiné avec les permutations -
qui on a le plus de chances.
>> De plus, vous pouvez également regarder pas seulement des mots, mais des phrases.
de sorte que vous pouvez analyser les relations entre les mots et puis obtenir un
meilleure traduction.
Aussi autre chose, si ce semestre Je suis en train de faire de la recherche dans
Chinois-Anglais traduction automatique, si la traduction de l'
Chinois vers l'anglais.
>> Et quelque chose que nous faisons est, en plus d'utiliser un modèle statistique, qui est juste
voir les probabilités de voir une position dans la phrase, je suis
fait également l'ajout d'une syntaxe à ma modèle, en disant, oh, si je vois ce genre
de la construction, c'est ce que je veux changer pour quand je traduis.
Ainsi, vous pouvez également ajouter une sorte de élément de syntaxe pour faire la
une traduction plus efficace et plus précis.
OK.
>> Alors, comment pouvez-vous commencer, si vous voulez de faire quelque chose en informatique
linguistique?
>> Tout d'abord, vous choisissez un projet qui implique langues.
Donc, il ya tellement de là.
Il ya tellement de choses que vous pouvez faire.
Et puis peut penser à un modèle que vous pouvez utiliser.
Habituellement, cela signifie penser hypothèses, que comme, oh, quand j'étais
comme la pensée des paroles.
J'étais comme, eh bien, si je veux comprendre un qui a écrit cela, je veux probablement
de regarder les mots de la personne a utilisé et voir qui utilise ce mot très souvent.
Donc, essayez de faire des hypothèses et essayez de penser à des modèles.
Et puis vous pouvez également rechercher en ligne pour le genre de problème que vous avez,
et il va suggérer pour vous les modèles que peut-être
bien modélisé cette chose.
>> Et aussi, vous pouvez toujours m'envoyer.
me@lfreitas.com.
Et je ne peux répondre à vos questions.
Nous pouvons même pourrions rencontrer afin que je puisse donner des suggestions sur les moyens de
mise en œuvre de votre projet.
Et je veux dire que si vous vous impliquez avec linguistique computationnelle, il va
d'être grand.
Vous allez voir, il ya tellement de potentiel.
Et l'industrie veut embaucher vous si mauvais à cause de cela.
J'espère donc que vous avez apprécié ce.
Si vous les gars avez des questions, vous pouvez me demander après cela.
Mais je vous remercie.