>> LUCAS FREITAS: Hey.
Sejam bem-vindos.
Meu nome é Lucas Freitas.
Eu sou um júnior na [inaudível], estudando ciência da computação com foco em
lingüística computacional.
Assim, a minha secundário é em língua ea teoria linguística.
Estou muito animado para ensinar vocês um pouco sobre o campo.
É uma área muito interessante para estudar.
Também com um grande potencial para o futuro.
Então, eu estou realmente animado que vocês estão considerando projetos em
lingüística computacional.
E eu serei mais do que feliz para aconselhar qualquer um de vocês, se você decidir
perseguir um desses.
>> Então, primeiro de tudo o que são computacional lingüística?
Então lingüística computacional é o intersecção entre lingüística e
ciência da computação.
Então, o que é lingüística?
O que é a ciência da computação?
Bem da lingüística, o que tomamos são as línguas.
Assim, a linguística é realmente o estudo da linguagem natural em geral.
Linguagem tão natural - falamos linguagem que realmente usar a
comunicar uns com os outros.
Portanto, não estamos falando exatamente sobre C ou Java.
Nós estamos falando mais sobre Inglês e Chinês e outras línguas que
usar para comunicar uns com os outros.
>> A coisa difícil sobre isso é que agora temos quase 7.000
línguas do mundo.
Então, há um alto variedade de idiomas que podemos estudar.
E então você pensa que é, provavelmente, muito difícil de fazer, por exemplo,
tradução de uma língua para a outro, considerando que você tem
quase 7.000 deles.
Então, se você pensar em fazer a tradução de uma língua para a outra você
tem quase mais de um milhão combinações diferentes que você pode
tem de língua para língua.
Então, é realmente um desafio para fazer alguma tipo de sistema de exemplo para tradução
cada língua única.
>> Assim, a lingüística trata com sintaxe, semântica, pragmática.
Vocês não exatamente precisa para saber o que eles estão são.
Mas a coisa muito interessante é que como um falante nativo, quando você aprende
linguagem como criança, você realmente aprender Todas essas coisas - semântica sintaxe
e pragmática -
por si mesmo.
E ninguém tem que te ensinar sintaxe para você entender como as sentenças são
estruturada.
Então, é realmente interessante porque é algo que vem muito
intuitivamente.
>> E o que você está tirando a ciência da computação?
Bem, a coisa mais importante que nós ter em ciência da computação é, antes de
tudo, a inteligência artificial e aprendizagem de máquina.
Então, o que nós estamos tentando fazer lingüística computacional é ensinar
o computador como fazer alguma coisa com a linguagem.
>> Assim, por exemplo, na máquina tradução.
Estou tentando ensinar meu computador como para saber como fazer a transição de um
língua para a outra.
Então, basicamente gosta de ensinar um computador duas línguas.
Se eu fizer processamento de linguagem natural, que é o caso por exemplo de
Do Facebook Graph Search, você ensinar o computador como entender
consultas bem.
>> Então, se você diz "as fotos da minha amigos. "Facebook não tratar esse
como toda uma série que tem apenas um monte de palavras.
Ele realmente entende a relação entre "Fotos" e "meus amigos" e
entende que "fotos" são propriedade de "meus amigos".
>> Então, isso é parte de, por exemplo, processamento de linguagem natural.
Ele está tentando entender o que é a relação entre
as palavras em uma frase.
E a grande questão é, não é ensinar um computador a falar
uma linguagem em geral?
Que é uma pergunta muito interessante acho que, como se talvez no futuro,
você vai ser capaz de fale com o seu telefone celular.
Mais ou menos como o que fazemos com Siri, mas algo mais parecido, você pode realmente
dizer o que quiser e telefone vai entender tudo.
E pode ter acompanhamento perguntas e continuar a falar.
Isso é algo realmente emocionante, na minha opinião.
>> Então, algo sobre línguas naturais.
Algo realmente interessante sobre línguas naturais é que, e este é
crédito para o meu professor de linguística, Maria Polinsky.
Ela dá um exemplo e eu acho que é realmente interessante.
Porque aprender a linguagem a partir de quando nascemos e então nossa nativa
tipo de linguagem cresce em nós.
>> E basicamente você aprender a língua de entrada mínima, certo?
Você só está recebendo entrada de seu pais de que seu idioma soa
gosta e que você acabou de aprender.
Então, é interessante porque se você olhar a essas frases, por exemplo.
Você olha, "Maria coloca um casaco de cada vez que ela sai de casa. "
>> Neste caso, é possível ter a palavra "ela" refere-se a Maria, certo?
Você pode dizer "Maria coloca um casaco cada vez que deixa o Maria
casa. "de modo que é bom.
Mas, então, se você olhar para a sentença "Ela coloca um casaco de cada vez que Maria
sai de casa. "você sabe que é impossível dizer que "ela" é
referindo-se a Maria.
>> Não há nenhuma maneira de dizer que "Maria coloca um casaco de cada vez que Mary deixa
a casa. "Então, é interessante porque este é o tipo de intuição
que todo falante nativo tem.
E ninguém foi ensinado que este é a maneira que a sintaxe funciona.
E que você só pode ter esse "ela" referindo-se a Maria neste primeiro caso,
e, na verdade, nesta outra também, mas não neste.
Mas todo mundo fica tipo de para a mesma resposta.
Todos concordam com isso.
Então, é realmente interessante como apesar de você não sabe todas as regras
em seu idioma que tipo de compreender como a linguagem funciona.
>> Então, a coisa interessante sobre naturais linguagem é que você não tem que
conheço nenhuma sintaxe de saber se uma sentença é gramatical ou não gramatical para
maior parte dos casos.
O que faz você pensar que talvez o que acontece é que, através de sua vida, você
estão a ficar cada vez mais sentenças disse para você.
E então você manter memorização todas as sentenças.
E então, quando alguém lhe diz alguma coisa, você ouve essa frase e
você olha para o seu vocabulário de sentenças e ver se
essa frase está lá.
E se ele está lá você dizer que é gramatical.
Se não é você dizer que é ungrammatical.
>> Então, nesse caso, você diria: oh, então você tem uma lista enorme de tudo
possíveis sentenças.
E então, quando você ouve uma frase, você sabe se é gramatical ou
não com base nisso.
A coisa é que se você olhar para uma frase, por exemplo, "O
cinco cabeças CS50 TFs cozido cegos polvo usando uma caneca DAPA ". É
definitivamente não é uma sentença que você já ouviu antes.
Mas, ao mesmo tempo, você sabe que é praticamente gramatical, certo?
Não há erros gramaticais e você pode dizer que
é uma possível sentença.
>> Por isso, faz-nos pensar que, na verdade, a maneira que nós aprender a língua não é apenas
por ter uma enorme base de dados de possíveis palavras ou frases, mas mais de
compreender a relação entre palavras essas frases.
Será que isso faz sentido?
Assim, então, a pergunta é, pode computadores aprender línguas?
Podemos ensinar a língua para computadores?
>> Então, vamos pensar na diferença entre um falante nativo de uma língua
e um computador.
Então, o que acontece com o orador?
Bem, o falante nativo aprende uma linguagem da exposição ao produto.
Normalmente os seus anos de infância.
Então, basicamente, você só tem um bebê, e você continuar a falar com ele, e ele
só aprende a falar a linguagem, certo?
Então, você está basicamente dando entrada para o bebê.
Então, você pode argumentar que um computador pode fazer a mesma coisa, certo?
Você pode apenas dar-língua como entrada para o computador.
>> Como por exemplo, um monte de arquivos que têm livros em Inglês.
Talvez essa seja uma maneira que você poderia ensinar uma
computador Inglês, certo?
E, na verdade, se você pensar sobre isso, é preciso que você talvez um par
dias para ler um livro.
Para um computador que leva um segundo para olhar para todas as palavras em um livro.
Assim, você pode pensar que pode ser apenas isso argumento de entrada a partir de sua volta,
isso não é suficiente para dizer que isso é algo que só os humanos podem fazer.
Você pode pensar computadores também pode obter entrada.
>> A segunda coisa é que os falantes nativos também têm um cérebro que tem
capacidade de aprendizagem de línguas.
Mas se você pensar sobre isso, um cérebro é uma coisa sólida.
Quando você nasce, já está definido -
este é o seu cérebro.
E, como você crescer, você fica mais entrada da linguagem e talvez nutrientes
e outras coisas.
Mas muito bonito o seu cérebro é uma coisa sólida.
>> Assim, você pode dizer, bem, talvez você possa construir um computador que tem um monte de
funções e métodos que apenas imitam capacidade de aprendizagem de línguas.
Então, nesse sentido, pode-se dizer, bem, eu pode ter um computador que tem todo o
coisas que eu preciso aprender a língua.
E a última coisa é que um nativo falante aprende com tentativa e erro.
Então, basicamente, outra coisa importante no a aprendizagem de línguas é que você meio
de aprender as coisas, fazendo generalizações sobre o que você ouve.
>> Então, como você está crescendo você aprende que algumas palavras são mais como substantivos,
algumas outras são adjetivos.
E você não tem que ter qualquer conhecimento da lingüística
entender isso.
Mas você só sabe que há algumas palavras estão posicionados em alguma parte do
sentença e alguns outros em outro partes da sentença.
>> E que quando você faz algo que é como uma frase que não é correto -
talvez por causa de uma generalização sobre por exemplo.
Talvez quando você está crescendo, você percebe que o plural é geralmente
formado por colocar um S no o fim da palavra.
E então você tenta fazer o plural de "veado" como "veados" ou "dente" como
"tooths". Então seus pais ou alguém corrige e diz, não, o
plural de "veado" é "veado", eo plural de "dente" é "dentes". E então
você aprender essas coisas.
Então você aprender com tentativa e erro.
>> Mas você também pode fazer isso com um computador.
Você pode ter uma coisa chamada aprendizado por reforço.
Que é basicamente como dar um computador uma recompensa sempre que ele faz
algo corretamente.
E dando-lhe o oposto de uma recompensa e quando ele faz algo errado.
Você pode realmente ver que se você ir para o Google Translate e tentar
traduzir uma frase, pede-lhe para o gabarito.
Então, se você diz, oh, há uma melhor tradução para esta frase.
Você pode digitá-lo e, em seguida, se um monte de as pessoas continuam a dizer que é a melhor
tradução, ele apenas aprende que deve usá-la em vez de tradução
aquele que estava dando.
>> Então, é uma pergunta muito filosófica para ver se os computadores vão ser
capaz de falar ou não no futuro.
Mas eu tenho grandes esperanças de que eles podem apenas com base nesses argumentos.
Mas é apenas mais um filosófica pergunta.
>> Assim, enquanto os computadores ainda não pode falar, quais são as coisas que nós podemos fazer?
Algumas coisas muito legais são classificação de dados.
Assim, por exemplo, vocês sabem que os serviços de e-mail fazer, para
exemplo, filtragem de spam.
Assim, sempre que você receber spam, tenta filtrar a outra caixa.
Então, como ele faz isso?
Não é como se o computador só sabe endereços de e-mail que está enviando spam.
Portanto, é mais baseado no conteúdo de da mensagem, ou talvez o título, ou
talvez algum padrão que você tem.
>> Então, basicamente, o que você pode fazer é obter um grande quantidade de dados de e-mails que são spam,
e-mails que não são spam, e assim aprender o que tipo de padrões que você tem no
aquelas que são spam.
E isso faz parte do computacional lingüística.
Chama-se a classificação de dados.
E nós estamos indo realmente para ver uma exemplo de que, nos próximos slides.
>> A segunda coisa é a linguagem natural processamento que é a coisa que o
Gráfico Pesquisa está fazendo de deixar você escrever uma frase.
E confia em você entender o que é o sentido e dá
um resultado melhor.
Na verdade, se você vai para o Google ou o Bing e você busca algo como Lady
Altura de Gaga, na verdade você está indo para obter 5 '1 "em vez de informação
dela, porque ele realmente entende o que você está falando.
Então, isso é parte de recursos naturais processamento da linguagem.
>> Ou também quando você estiver usando o Siri, primeiro você tem um algoritmo que tenta
traduzir o que você está dizendo em palavras, em texto.
E então ele tenta traduzir que em sentido.
Então, isso é tudo parte de recursos naturais processamento da linguagem.
>> Então você tem de tradução automática -
que na verdade é um dos meus favoritos -
que é apenas a tradução de uma língua para outra.
Assim, você pode pensar que, quando você está fazendo tradução automática, você tem
infinitas possibilidades de sentenças.
Portanto, não há nenhuma maneira de armazenar apenas cada tradução única.
Então você tem que chegar a interessante algoritmos para poder
traduzir cada sentença de alguma forma.
>> Vocês têm alguma dúvida até agora?
Não?
OK.
>> Então, o que vamos ver hoje?
Primeiro de tudo, eu vou falar sobre o problema de classificação.
Então, o que eu estava dizendo sobre spam.
O que eu vou fazer é, dadas as letras uma música, você pode tentar descobrir
com elevada probabilidade quem é o cantor?
Vamos dizer que eu tenho músicas de Lady Gaga e Katy Perry, se eu lhe der um
nova canção, você pode descobrir se é Katy Perry ou Lady Gaga?
>> O segundo, eu só vou falar sobre o problema de segmentação.
Então, eu não sei se vocês sabem, mas Chinês, japonês, outro do Leste Asiático
idiomas, e outros idiomas em geral, não têm
espaços entre as palavras.
E então, se você pensar sobre a maneira que o seu tipo de computador de tentativas para
compreender processamento de linguagem natural, ele olha para as palavras e
tenta compreender as relações entre eles, certo?
Mas, então, se você tiver chinês, e você ter zero espaços, é realmente difícil
descobrir o que é a relação entre palavras, porque eles não têm qualquer
palavras em primeiro lugar.
Então você tem que fazer algo chamado segmentação que significa apenas colocar
espaços entre o que nós chamaríamos palavras nessas línguas.
Faz sentido?
>> E então nós vamos falar sobre sintaxe.
Então, basta um pouco sobre naturais processamento da linguagem.
Vai ser apenas uma visão geral.
Então, hoje, basicamente o que eu quero fazer é dar a vocês um pouco de uma
dentro do que são as possibilidades que você pode fazer com computacional
lingüística.
E então você pode ver o que você pensa é legal entre essas coisas.
E talvez você possa pensar em um projeto e vem falar comigo.
E eu posso lhe dar conselhos sobre a forma de implementá-lo.
>> Então sintaxe vai ser um pouco Pesquisa sobre Graph e máquina
tradução.
Eu só vou dar um exemplo de como você poderia, por exemplo, traduzir
algo de Português para Inglês.
Parece bom?
>> Então, primeiro, o problema de classificação.
Eu vou dizer que esta parte do seminário vai ser o maior desafio
um só porque não vai ser alguma codificação.
Mas vai ser Python.
Eu sei que vocês não conhecem Python, por isso, Eu só vou explicar sobre a alta
nível que eu estou fazendo.
E você não tem que realmente se preocupam demais muito sobre a sintaxe, porque isso é
algo que vocês possam aprender.
OK?
Parece bom.
>> Então, qual é o problema de classificação?
Então, você está dado algumas letras para uma música, e você quer adivinhar
quem está cantando.
E isto pode ser para qualquer tipo de outros problemas.
Assim pode ser, por exemplo, você tem um campanha presidencial e você tem um
fala, e você quer encontrar se era, por exemplo,
Obama ou Mitt Romney.
Ou você pode ter um monte de e-mails e você quer descobrir se eles são
spam ou não.
Então é só classificando algumas dados com base nas palavras
que você tem lá.
>> Então, para fazer isso, você tem que fazer algumas suposições.
Então, um monte sobre a linguística computacional está fazendo suposições,
pressupostos geralmente inteligentes, de modo que você pode obter bons resultados.
Tentando criar um modelo para ele.
E, em seguida, testá-lo e ver se ele funciona, se lhe dá uma boa precisão.
E se isso acontecer, então você tentar melhorá-lo.
Se não, você é como, OK, talvez eu deve fazer uma suposição diferente.
>> Assim, a suposição de que vamos fazer é que um artista normalmente canta
sobre um tópico várias vezes, e talvez usa palavras várias vezes apenas
porque eles estão acostumados a isso.
Você pode apenas pensar em seu amigo.
Eu tenho certeza que vocês todos têm amigos que dizem que sua frase de assinatura,
literalmente para cada frase -
como alguma palavra ou algum específico específico frase que eles dizem para
cada frase única.
>> E o que você pode dizer é que se você ver uma frase que tem uma assinatura
frase, você pode imaginar que, provavelmente, seu amigo é o
um dizê-lo, certo?
Então você faz essa suposição e, em seguida, é assim que você criar um modelo.
>> O exemplo que vou dar é sobre como Lady Gaga, por exemplo, pessoas
dizer que ela usa "bebê" para todas as suas canções número um.
E, na verdade, este é um vídeo que mostra ela dizer a palavra "bebê" para
músicas diferentes.
>> [REPRODUÇÃO]
>> - (Cantando) Bebê.
Bebê.
Borracho.
Bebê.
>> [FIM REPRODUÇÃO DE VÍDEO-
>> LUCAS FREITAS: Portanto, há, penso eu, 40 músicas aqui em que ela diz que a
palavra "bebê". Então, basicamente você pode imaginar que se você vê uma música que tem
a palavra "bebê", há alguns de alta probabilidade de que é Lady Gaga.
Mas vamos tentar desenvolver esta ainda mais formalmente.
>> Então, essas são letras de músicas por Lady Gaga e Katy Perry.
Então você olha para Lady Gaga, você vê que eles tem um monte de ocorrências de "bebê", um
muitas ocorrências de "caminho". E então Katy Perry tem um monte de ocorrências de
"A", uma série de ocorrências de "fogo".
>> Então, basicamente, o que queremos fazer é, você recebe uma letra.
Vamos dizer que você tem uma letra para um música que é "bebê", apenas "bebê". Se
você começa apenas a palavra "bebê", e isso é todos os dados que você tem a partir de
Lady Gaga e Katy Perry, que seria você adivinhar é a pessoa
quem canta a música?
Lady Gaga ou Katy Perry?
Lady Gaga, né?
Porque ela é a única que diz "Bebê". Isto soa estúpido, né?
OK, isso é muito fácil.
Eu estou apenas olhando para as duas músicas e de Claro, ela é a única pessoa que tem
"Bebê".
>> Mas e se você tem um monte de palavras?
Se você tem uma letra real, algo como, "bebê, eu só
fui ver um [? CFT?]
palestra ", ou algo assim, e então você realmente tem que descobrir -
com base em todas as palavras -
quem é o artista que provavelmente cantou esta música?
Então, vamos tentar desenvolver isso um pouco mais.
>> OK, com base apenas nos dados que temos obtido, parece que Gaga é provavelmente
o cantor.
Mas como podemos escrever esta mais formal?
E não vai ser um pouco pouco de estatísticas.
Então, se você se perder, basta tentar para entender o conceito.
Não importa se você entender as equações perfeitamente bem.
Isso tudo vai estar on-line.
>> Então, basicamente o que eu estou cálculo é o probabilidade de que esta canção é por
Lady Gaga, uma vez que -
assim que este bar significa uma vez que -
Eu vi a palavra "bebê". Será que isso faz sentido?
Então, eu estou tentando calcular essa probabilidade.
>> Portanto, não há este teorema chamado Teorema de Bayes que diz que o
probabilidade de uma dada B, é o probabilidade de B dado A, vezes o
A probabilidade de, durante a probabilidade B. Trata-se de uma equação longa.
Mas o que você tem que entender de que é que é isso que eu quero
calcular, certo?
Assim, a probabilidade de que essa música é de Lady Gaga, uma vez que eu vi a palavra
"Bebê".
>> E agora o que eu estou recebendo é a probabilidade de a palavra "bebê" dado
que eu tenho Lady Gaga.
E o que é que, basicamente?
O que isto significa é, qual é o probabilidade de ver a palavra "bebê"
em letras Gaga?
Se eu quiser calcular que de uma forma muito maneira simples, é apenas o número de
vezes eu vejo "bebê" sobre o número total de palavras em letras Gaga, né?
Qual é a freqüência que eu vejo essa palavra no trabalho de Gaga?
Faz sentido?
>> O segundo termo é o probabilidade de Gaga.
O que significa isso?
Isso significa, basicamente, o que é o probabilidade de classificar
algumas letras como Gaga?
E isso é meio estranho, mas Vamos pensar em um exemplo.
Então, vamos dizer que a probabilidade de ter "bebê" em uma canção é a mesma
por Gaga e Britney Spears.
Mas Britney Spears tem o dobro mais músicas do que Lady Gaga.
Então, se alguém lhe dá apenas aleatoriamente letra de "bebê", a primeira coisa que você
olhar é, qual é a probabilidade de ter "bebê" em uma canção Gaga, "bebê"
em uma canção de Britney?
E é a mesma coisa.
>> Portanto, a segunda coisa que você verá é, bem, qual é a probabilidade de
esta letra por si só ser um lírico Gaga, e qual é a probabilidade de
ser um lírico Britney?
Então, já que Britney tem tantos mais letras de Gaga, você provavelmente
digamos, bem, este é, provavelmente, uma letra de Britney.
Então é por isso que temos esta termo certo aqui.
Probabilidade de Gaga.
Faz sentido?
Não é?
OK.
>> E o último é apenas a probabilidade de "bebê", que não
realmente importa muito.
Mas é a probabilidade de vendo "bebê" em Inglês.
Nós geralmente não se importam que muito sobre esse termo.
Será que isso faz sentido?
Assim, a probabilidade de Gaga é chamada a probabilidade anterior
da Gaga classe.
Porque isso significa apenas que, o que é o probabilidade de ter essa classe -
que é Gaga -
apenas, em geral, só sem condições.
>> E então quando eu tenho probabilidade de Gaga dado "bebê", podemos chamá-lo mais
marejados uma probabilidade porque é a probabilidade de ter
Gaga deu algumas provas.
Então, eu estou dando-lhe a evidência que eu vi o bebê da palavra e
a música faz sentido?
OK.
>> Então, se eu calculou que para cada das músicas de Lady Gaga,
o que seria -
aparentemente, não posso mover este.
A probabilidade de Gaga será algo como 2 mais de 24, os tempos de 1/2,
mais de 2 mais de 53.
Não importa se você sabe o que estes números estão vindo.
Mas é apenas um número que vai ser mais do que 0, certo?
>> E então, quando eu faço Katy Perry, a probabilidade de "bebê" dado Katy é
já 0, certo?
Porque não há "bebê" em Katy Perry.
Então isso se torna 0, e Gaga vitórias, o que significa que Gaga é
provavelmente o cantor.
Será que isso faz sentido?
OK.
>> Então, se eu quero fazer isso mais oficial, Eu posso realmente fazer um modelo
várias palavras.
Então, digamos que eu tenho algo como: "querida, eu sou
no fogo ", ou algo assim.
Por isso, tem várias palavras.
E, neste caso, você pode ver que "bebê" está em Gaga,
mas não é em Katy.
E o "fogo" está em Katy, mas não é em Gaga, né?
Por isso, está ficando mais complicado, né?
Porque parece que você quase tem um laço entre os dois.
>> Então o que você tem a fazer é assumir independência entre as palavras.
Então, basicamente o que isso significa é que Eu só estou calculando o que é o
probabilidade de ver "bebê", o que é a probabilidade de ver "eu", e
"Am" e "on" e "fogo" tudo separadamente.
Então eu estou multiplicando todos eles.
E eu estou vendo qual é a probabilidade de ver a frase inteira.
Faz sentido?
>> Então, basicamente, se eu tenho apenas uma palavra, o que eu quero é encontrar o arg max,
o que significa, o que é a classe que é me dando a maior probabilidade?
Então, qual é a classe que está a dar me a maior probabilidade de
probabilidade de classe determinada palavra.
Portanto, neste caso, Gaga deu "bebê". Ou Katy dado "bebê". Faz sentido?
>> E só a partir de Bayes, que equação que eu mostrei,
criamos essa fração.
A única coisa é que você vê que a probabilidade de a palavra dada
mudanças de classe, dependendo na classe, certo?
O número de s "bebê" que eu tenho em Gaga é diferente de Katy.
A probabilidade de a classe também mudanças, porque isso é apenas o número
de músicas cada um deles tem.
>> Mas a probabilidade de a própria palavra vai ser o mesmo para todo o
artistas, certo?
Assim, a probabilidade de a palavra está apenas, qual é a probabilidade de
vendo essa palavra no Idioma Inglês?
Então, é o mesmo para todos eles.
Então, uma vez que esta é constante, podemos apenas largar isso e não se preocupam com isso.
Então, isso vai ser realmente o equação que estamos procurando.
>> E se eu tiver várias palavras, eu sou ainda vai ter o prévio
probabilidade aqui.
A única coisa é que eu estou multiplicando a probabilidade de
todas as outras palavras.
Então, eu estou multiplicando todos eles.
Faz sentido?
Parece estranho, mas basicamente significa, calcular o antes da aula, e
em seguida, multiplicar pela probabilidade de cada das palavras sendo nessa classe.
>> E você sabe que a probabilidade de um palavra dada uma classe vai ser o
número de vezes que você vê essa palavra em classe, dividido pelo número de
palavras que você tem em que classe em geral.
Faz sentido?
É apenas como "bebê" foi de 2 sobre o número de palavras que
Tive nas letras.
Portanto, apenas a freqüência.
>> Mas há uma coisa.
Lembre-se de como eu estava mostrando que o probabilidade de serem letras "bebê"
de Katy Perry é 0 só porque Katy Perry não tinha "bebê" em tudo?
Mas soa um pouco dura apenas simplesmente dizer que as letras não pode ser de
um artista só porque eles não têm esta palavra, nomeadamente, a qualquer momento.
>> Então, você poderia apenas dizer, bem, se você não tem esta palavra, eu vou
dar-lhe uma menor probabilidade, mas eu não vou
dar-lhe 0 imediatamente.
Porque talvez fosse algo como: "Fogo, fogo, fogo, fogo", que é
totalmente Katy Perry.
E, em seguida, "bebê", e isso só serve para 0 de imediato, porque havia uma
"Bebê".
>> Então, basicamente, o que fazemos é algo chamado Laplace alisamento.
E isso apenas significa que eu estou dando alguma probabilidade, mesmo para as palavras
que não existem.
Então, o que eu faço é que quando estou calcular isso, eu sempre adicionar 1 a
o numerador.
Assim, mesmo que a palavra não existe, em Neste caso, se este for 0, eu ainda estou
cálculo deste como um todo o número total de palavras.
Caso contrário, fico com quantas palavras Eu tenho e eu adicionar 1.
Então, eu estou contando para ambos os casos.
Faz sentido?
>> Então agora vamos fazer alguma codificação.
Eu vou ter que fazer isso muito rápido, mas é apenas importante que você
caras entender os conceitos.
Então o que nós estamos tentando fazer é exatamente implementar esta
coisa que eu disse -
Eu quero que você colocar letras de Lady Gaga e Katy Perry.
E o programa vai ser capaz de dizer se essas novas letras são de Gaga
ou Katy Perry.
Faz sentido?
OK.
>> Então, eu tenho esse programa eu vou para chamar classify.py.
Portanto, esta é Python.
É uma nova linguagem de programação.
É muito semelhante em alguns formas de C e PHP.
É semelhante, porque se você quiser aprender Python depois de conhecer C, é
não é realmente um grande desafio só porque Python é muito mais fácil
a C, em primeiro lugar.
E um monte de coisas que já estão implementadas para você.
Então, como como PHP tem funções que ordenar uma lista, ou acrescentar algo
para uma matriz, ou blá, blá, blá.
Python tem todas as também.
>> Então, eu só vou explicar rapidamente como poderíamos fazer a classificação
problema para aqui.
Então, vamos dizer que, neste caso, eu tenho letras de Gaga e Katy Perry.
A maneira que eu tenho é que essas letras a primeira palavra das letras é
o nome do artista e o resto é a letra.
Então, vamos dizer que eu tenho essa lista em que o primeiro é letra de Gaga.
Então, aqui estou no caminho certo.
E o próximo é Katy, e ele também tem as letras.
>> Então é assim que você declarar uma variável em Python.
Você não tem que dar o tipo de dados.
Você acabou de escrever "letras", tipo de gosto em PHP.
Faz sentido?
>> Então, quais são as coisas que eu tenho que calcular a ser capaz de calcular a
probabilidades?
Eu tenho que calcular os "antecedentes" de cada um dos diferentes
classes que eu tenho.
Eu tenho que calcular os "posteriors", ou praticamente as probabilidades de
cada uma das palavras que diferentes Eu posso ter para cada artista.
Então, dentro de Gaga, por exemplo, eu vou ter uma lista de quantas vezes eu vejo
cada uma das palavras.
Faz sentido?
>> E, finalmente, eu estou indo só para ter um lista chamada "palavras" que só vai
ter quantas palavras que eu ter para cada artista.
Assim, para Gaga, por exemplo, quando eu olho para as letras, que eu tinha, eu acho, 24
palavras no total.
Portanto, esta lista é apenas vai ter Gaga 24, e Katy outro número.
Faz sentido?
OK.
>> Então, agora, na verdade, vamos ir para a codificação.
Assim, em Python, você pode realmente retornar um monte de diferente
coisas de uma função.
Então, eu estou indo para criar esta função chamado "condicional", que vai
para retornar todas essas coisas, o "antecedentes", as "probabilidades", eo
"palavras". Assim, "condicional", e é vai ser pôr em "letras."
>> Então agora eu quero que você realmente escrever esta função.
Assim, a maneira que eu posso escrever este função é eu só definiu este
funcionar com "def". Então eu fiz "def condicional ", e ele está tomando
"Letras". E o que isso vai fazer é, antes de tudo, eu tenho minhas priores
que eu quero calcular.
>> Assim, a maneira que eu possa fazer isso é criar um dicionário em Python, o que
é praticamente a mesma coisa que um hash mesa, ou é como um iterativo
array em PHP.
Isto é como eu declarar um dicionário.
E, basicamente, o que isto significa é que priores de Gaga é de 0,5, por exemplo, se
50% das letras são de Gaga, 50% são de Katy.
Faz sentido?
Então eu tenho que descobrir como para calcular os antecedentes.
>> Os próximos que eu tenho que fazer, também, são as probabilidades e as palavras.
Assim, as probabilidades de Gaga é a lista de todas as probabilidades de que I
ter para cada uma das palavras de Gaga.
Então, se eu for para probabilidades de Gaga "Bebê", por exemplo, ele vai me dar
algo como 2 mais de 24 nesse caso.
Faz sentido?
Então eu vou para "probabilidades", vá para o Balde "Gaga", que tem uma lista de todos
as palavras Gaga, então eu vou para "bebê" e eu vejo a probabilidade.
>> E, finalmente, eu tenho essa "As palavras" dicionário.
Então, aqui, "probabilidades". E então "palavras". Então, se eu faço "palavras", "Gaga",
o que vai acontecer é que é vai me dar 24, dizendo que eu
tem 24 palavras dentro letras de Gaga.
Faz sentido?
Então, aqui, "palavras" é igual dah-dah-dah.
Ok
>> Então o que eu vou fazer é que eu vou iterar sobre cada uma das letras, então
cada uma das cordas que Eu tenho na lista.
E eu vou para calcular essas coisas para cada um dos candidatos.
Faz sentido?
Então eu tenho que fazer um loop for.
>> Assim, em Python, o que posso fazer é "para a linha em letras. "A mesma coisa que um
"Para cada" declaração em PHP.
Lembra-se como se fosse PHP eu pudesse dizer "para cada letras como
linha. "Faz sentido?
Então, eu estou tomando cada uma das linhas, neste caso, essa seqüência ea próxima
corda de modo para cada uma das linhas que eu sou vai fazer é, primeiro, eu vou
dividir esta linha em uma lista de palavras separadas por espaços.
>> Então, a coisa legal sobre Python é que você poderia apenas o Google como "Como posso
dividir uma string em palavras? "E é vou dizer-lhe como fazê-lo.
E a maneira de fazê-lo, é só linha " = Line.split () "e é basicamente
vai dar-lhe uma lista com cada um dos termos aqui.
Faz sentido?
Portanto, agora que eu fiz isso que eu quero saber quem é o cantor da canção.
E para fazer isso eu tenho que tirar o primeiro elemento do array, certo?
Então, eu só posso dizer que eu "cantora = Linha (0) "Faz sentido?
>> E então o que eu preciso fazer é, em primeiro lugar tudo, eu vou atualizar quantos
palavras que eu tenho em "Gaga". então eu sou apenas vai calcular quantas palavras que eu
tem nesta lista, certo?
Porque este é o número de palavras que eu tenho nas letras e eu só vou
adicioná-lo à matriz "Gaga".
Será que isso faz sentido?
Não se concentrar muito na sintaxe.
Pense mais sobre os conceitos.
Essa é a parte mais importante.
OK.
>> Então, o que eu posso fazer é se "Gaga" é já nessa lista, por isso "se cantor
palavras "o que significa que eu já tenho palavras por Gaga.
Eu só quero acrescentar o adicional palavras para isso.
Então, o que eu faço é "palavras (cantor) + = Len (linha) - 1 ".
E então eu posso apenas fazer a comprimento da linha.
Então, como muitos elementos I ter na matriz.
E eu tenho que fazer menos 1 só porque o primeiro elemento da matriz é apenas
um cantor e os que não são letras.
Faz sentido?
OK.
>> "Else", isso significa que eu quero, na verdade, inserir Gaga na lista.
Então, eu só faço "palavras (cantor) = Len (linha) - 1, "desculpe.
Assim, a única diferença entre os dois linhas é que um presente, isso não acontece
existem ainda, então eu sou apenas inicializa-la.
Esse eu realmente estou adicionando.
OK.
Portanto, esta foi a adição de palavras.
>> Agora eu quero adicionar aos antecedentes.
Então, como faço para calcular os priores?
Os antecedentes pode ser calculada por quantas vezes.
Então, quantas vezes você vê que a cantora entre todos os cantores que vocês,
tem, certo?
Assim, por Gaga e Katy Perry, neste caso, não vejo Gaga
uma vez que, Katy Perry vez.
>> Então, basicamente, os priores para Gaga e para Katy Perry faria
ser apenas um, certo?
Você só quantas vezes Eu vejo o artista.
Então isso é muito fácil de calcular.
Eu posso apenas algo semelhante como como "se cantor em priores, "Eu só vou
adicionar 1 para sua caixa de antecedentes.
Então, "priores (cantar)" + = 1 "e depois" senão " Eu vou fazer "priores (cantor)
= 1. "Faz sentido?
>> Então, se ela não existir Acabei de colocar como 1, caso contrário, eu apenas adicionar 1.
OK, então agora tudo o que me resta fazer também é adicionar cada uma das palavras do
probabilidades.
Então eu tenho que contar quantas vezes Eu vejo cada uma das palavras.
Então, eu só tenho que fazer outro loop for na linha.
>> Então a primeira coisa que vou fazer é verificar se o cantor já tem um
variedade probabilidades.
Então, eu estou verificando se a cantora não faz ter uma matriz probabilidades, eu sou apenas
indo para inicializar um deles.
Não é nem mesmo uma matriz, desculpe, é um dicionário.
Assim, as probabilidades de cantora vai para ser um dicionário aberto, por isso estou
apenas inicializar um dicionário para ele.
OK?
>> E agora eu posso realmente fazer um loop para calcular cada uma das palavras '
probabilidades.
OK.
Então, o que eu posso fazer é um loop for.
Então, eu só vou fazer uma iteração sobre a matriz.
Assim, a maneira que eu posso fazer isso em Python é "for i in range". A partir de 1
porque eu quero começar no segundo elemento porque o primeiro é o
Nome cantor.
Então, a partir de um até o comprimento da linha.
E quando eu variar ele realmente ir de como aqui de 1 a len do
linha menos 1.
Por isso, já faz essa coisa de fazer n menos 1 para matrizes que é muito
conveniente.
Faz sentido?
>> Assim, para cada uma delas, o que eu vou fazer é, assim como no outro,
Vou verificar se a palavra neste posição na linha que já está em
probabilidades.
E então, como eu disse aqui, as probabilidades palavras, como em eu coloquei
"probabilidades (cantor)".
Assim, o nome da cantora.
Então, se ele já está em "Probabilit (cantor)", significa que eu
pretende adicionar 1 a isso, então eu vou fazer "probabilidades (cantor)", ea
palavra é chamado de "linha de (i)".
Eu estou indo para adicionar um e "senão" Eu sou apenas indo para inicializá-lo para 1.
"Linha (i)".
Faz sentido?
>> Então, I calculada todas as matrizes.
Então, agora tudo o que eu tenho que fazer para este é apenas "voltar priores,
probabilidades e palavras. "Vamos ver se há algum, OK.
Parece que tudo está funcionando até agora.
Então, isso faz sentido?
De alguma forma?
OK.
Então agora eu tenho todas as probabilidades.
Então, agora a única coisa que me resta é só para ter aquela coisa que
calcula o produto de todos os probabilidades quando eu chegar a letra.
>> Então, vamos dizer que eu quero chamar agora esta função "classificar ()" eo
coisa que função tem é apenas um argumento.
Vamos dizer "Baby, eu estou no fogo" e é vai descobrir o que é o
probabilidade de que este é Gaga?
Qual é a probabilidade que este é Katie?
Parece bom?
Então, eu só vou ter que criar um nova função chamada "classificar ()" e
isso vai levar algum letras também.
E além das letras que eu também tem que enviar os priores, o
probabilidades e as palavras.
Então eu vou mandar letras, priores, probabilidades, palavras.
>> Então, isso está tomando letras, priores, probabilidades, palavras.
Então, o que ele faz?
É, basicamente, vai passar por tudo os possíveis candidatos que tenha
tem como cantora.
E onde estão os candidatos?
Eles estão no priores, certo?
Então, eu tenho todos aqueles lá.
Então, eu vou ter um dicionário de todos os candidatos possíveis.
E, em seguida, para cada candidato na priores, então isso significa que ele vai
ser Gaga, Katie se eu tivesse mais seria mais.
Vou começar a calcular esta probabilidade.
A probabilidade, como vimos no PowerPoint é os tempos anteriores a
produto de cada um dos outros probabilidades.
>> Então eu posso fazer o mesmo aqui.
Eu posso apenas fazer a probabilidade é inicialmente apenas o anterior.
Assim antecedentes do candidato.
Certo?
E agora eu tenho que iterar sobre todo o palavras que eu tenho nas letras para ser
capaz de adicionar a probabilidade para cada um deles, ok?
Então, "por palavra nas letras" o que eu vou a fazer é, se a palavra está na
"probabilidades (candidatos)", que significa que é uma palavra que o
candidato tem em suas letras -
por exemplo, "bebê" para Gaga -
o que eu vou fazer é que o probabilidade vai ser multiplicada
por 1 mais as probabilidades de o candidato para essa palavra.
E isso é chamado de "palavra".
Este dividido pelo número de palavras que eu tenho para esse candidato.
O número total de palavras que eu tenho para o cantor que eu estou olhando.
>> "Else". isso significa que é uma nova palavra por isso seria como por exemplo
"Fogo" de Lady Gaga.
Então, eu só quero fazer um sobre "Palavra (candidato)".
Então eu não quero colocar este termo aqui.
>> Por isso, vai ser basicamente copiando e colando este.
Mas eu vou apagar essa parte.
Por isso, só vai ser 1 sobre isso.
Parece bom?
E agora, no final, eu só vou imprimir o nome do candidato e
a probabilidade de que você tem de tendo a S em suas letras.
Faz sentido?
E eu, na verdade, nem sequer precisa deste dicionário.
Faz sentido?
>> Então, vamos ver se isso realmente funciona.
Então, se eu executar isso, ele não funcionou.
Espere um segundo.
"Palavras (candidatos)", "palavras (candidatos)", isso é
o nome da matriz.
OK Então, ele diz que há algum bug para o candidato em antecedentes.
Deixe-me apenas relaxar um pouco.
OK.
Vamos tentar.
OK.
>> Então dá Katy Perry tem este probabilidade de isso vezes 10 elevado a
menos rubricas 7, e Gaga tem essa vezes 10 elevado a menos 6.
Então você vê que mostra que Gaga tem uma maior probabilidade.
Assim, "Baby, eu estou no fogo" é provavelmente uma canção Gaga.
Faz sentido?
Então é isso que nós fizemos.
>> Este código vai ser publicado on-line, para que vocês possam conferir.
Talvez use algumas delas para se você quiser fazer um projeto ou algo semelhante.
OK.
Este foi apenas para mostrar computacional que
código lingüística parece.
Mas agora vamos para mais material de alto nível.
OK.
>> Assim, os outros problemas que eu estava falando -
o problema de segmentação é a primeira delas.
Então você tem aqui japonesa.
E então você vê que não há espaços.
Portanto, esta é, basicamente, significa que ele é o topo da cadeira, certo?
Você fala japonês?
É o topo da cadeira, certo?
>> ALUNO: Eu não sei o que o kanji ali é.
>> LUCAS FREITAS: É [falando japonês]
OK.
Por isso basicamente significa cadeira de topo.
Então, se você tivesse que colocar um espaço seria aqui.
E então você tem [? Ueda-san. ?]
O que basicamente significa Ueda.
E você vê que "Ueda" e você tem um espaço e, em seguida, "san." Então você vê que
aqui você "Ue" é como por si só.
E aqui tem um caráter ao lado dele.
>> Então não é como nas línguas caracteres que significam uma palavra dele para que você
basta colocar um monte de espaços.
Caracteres referem-se uns aos outros.
E eles podem estar juntos como dois, três, um.
Então, você realmente tem que criar algum tipo de forma de colocar esses espaços.
>> E essa coisa é que sempre que você começa dados desses idiomas asiáticos,
tudo vem unsegmented.
Porque ninguém que escreve japonês ou chinês escreve com espaços.
Sempre que você está escrevendo chinês, Japonês que você acabou de escrever tudo
sem espaços.
Não faz muito sentido para colocar espaços.
Então quando você começa a partir de dados, alguns Idioma do Leste Asiático, se você quiser
realmente fazer algo com isso você tem que primeiro segmento.
>> Pense em fazer o exemplo de as letras, sem espaços.
Assim, as únicas letras que você tem será sentenças, certo?
Separados por pontos.
Mas, então, ter apenas a sentença irá não realmente ajudar a dar informações
de que essas letras são de.
Certo?
Portanto, você deve coloca espaços em primeiro lugar.
Então, como você pode fazer isso?
>> Então, em seguida, vem a idéia de uma língua modelo que é algo realmente
importante para computacional lingüística.
Assim, um modelo de linguagem é basicamente um tabela de probabilidades que mostra
antes de tudo, qual é a probabilidade de ter a palavra em uma língua?
Então, mostrando como uma palavra é freqüente.
E, em seguida, também, mostrando a relação entre as palavras em uma frase.
>> Assim, a idéia principal é que, se um estranho veio para você e disse uma frase para
você, qual é a probabilidade de que, para exemplo, "esta é a minha irmã [? GTF"?]
foi a frase que a pessoa disse?
Então, obviamente, algumas frases são mais comuns do que outros.
Por exemplo, "bom dia" ou "boa noite ", ou" hey lá, "é muito mais
comum do que a maioria das sentenças que temos um Inglês.
Então, por que essas frases mais freqüente?
>> Antes de mais nada, é porque você tem palavras que são mais freqüentes.
Assim, por exemplo, se você diz, o cão é grande, e que o cão é gigantesca, você
geralmente provavelmente ouvir o cão é grande mais frequentemente, porque "grande" é mais
freqüente em Inglês de "gigantesco". Assim, um dos
coisas é a freqüência de palavras.
>> A segunda coisa que é realmente importante é apenas o
ordem das palavras.
Assim, é comum dizer que "o gato está dentro da caixa. ", mas você geralmente não
ver em "A caixa de dentro é o gato." assim você vê que há alguma importância
na ordem das palavras.
Você não pode simplesmente dizer que aqueles dois sentenças têm a mesma probabilidade
só porque eles têm as mesmas palavras.
Você realmente tem que cuidar sobre a ordem também.
Faz sentido?
>> Então, o que fazemos?
Então, o que eu poderia tentar levá-lo?
Estou tentando conseguir o que nós chamar os modelos n-gramas.
Assim, os modelos n-gram basicamente assumir que, para cada palavra que
você tem em uma frase.
É a probabilidade de ter que palavra não depende não só do
freqüência da palavra na língua, mas também em que as palavras
estão ao seu redor.
>> Assim, por exemplo, geralmente quando você vê algo como em ou pelo que você é
provavelmente vai ver um substantivo depois, certo?
Porque quando você tem uma preposição geralmente leva um substantivo depois dele.
Ou se você tiver um verbo que é transitivo você geralmente vão
ter um sintagma nominal.
Por isso, vai ter um substantivo em algum lugar em torno dele.
>> Então, basicamente, o que ele faz é que ele considera a probabilidade de ter
palavras ao lado do outro, quando você está calculando o
probabilidade de uma sentença.
E é isso que a língua modelo é basicamente.
Basta dizer qual é a probabilidade de ter uma específica
sentença em uma língua?
Então, por que é tão útil, basicamente?
E antes de tudo o que é um modelo de n-gramas, então?
>> Assim, um modelo de n-gramas significa que cada palavra depende da
N próxima de menos 1 palavras.
Então, basicamente, significa que se eu olhar, por exemplo, o TF CS50 quando
Estou calculando a probabilidade de a frase, você vai ser como "o
probabilidade de ter a palavra "a" vezes a probabilidade de ter o "
CS50 "vezes a probabilidade de ter "O TF CS50." Então, basicamente, eu conto
todas as formas possíveis de esticá-lo.
>> E, então, geralmente quando você está fazendo isso, como em um projeto, você coloca N a ser
um valor baixo.
Então, geralmente têm bigramas ou trigramas.
Assim que você acabou de contar duas palavras, uma grupo de duas palavras, ou três palavras,
apenas para problemas de desempenho.
E também porque, talvez, se você tem algo como "O TF CS50". Quando você
ter "TF", é muito importante que "CS50" está ao lado dele, certo?
Essas duas coisas são normalmente ao lado do outro.
>> Se você pensar em "TF", é provavelmente vai ter que
classe é TF'ing para.
Também "a" é realmente importante para CS50 TF.
Mas se você tem algo como "O CS50 TF fui para a aula e deram o seu
estudantes alguns doces. "" Candy "e" a " não têm relação de verdade, certo?
Eles estão tão distantes umas das outras que isso realmente não importa o que
palavras que você tem.
>> Então, fazendo um bigram ou um trigrama, ele Significa apenas que você está limitando
se a algumas palavras que estão ao redor.
Faz sentido?
Então, quando você quer fazer segmentação, basicamente, o que você quer fazer é ver
quais são todas as maneiras possíveis que você pode segmentar a frase.
>> De tal forma que você vê o que é a probabilidade de cada uma das referidas frases
existente na linguagem?
Então, o que você faz é como, bem, vamos me tentar colocar um espaço aqui.
Então você colocar um espaço lá e você vê o que é a
probabilidade de que a sentença?
Então você é como, OK, talvez que não era tão bom.
Então eu coloquei um espaço lá e um espaço lá, e você calcular a
probabilidade agora, e você vê que é uma probabilidade mais elevada.
>> Portanto, este é um algoritmo chamado de TANGO algoritmo de segmentação, que é
na verdade, algo que seria realmente legal para um projeto, que
basicamente leva texto unsegmented que pode ser japonês ou chinês ou talvez
Inglês sem espaços e tenta colocar espaços entre as palavras e ele faz
que, ao utilizar um modelo de linguagem e tentando ver o que é o mais alto
probabilidade você pode começar.
OK.
Portanto, esta é a segmentação.
>> Agora sintaxe.
Assim, a sintaxe está sendo usado para tantas coisas neste momento.
Assim, por Graph Pesquisa, por Siri para praticamente qualquer tipo de recursos naturais
processamento de linguagem que você tem.
Então, quais são os importantes coisas sobre sintaxe?
Assim, as sentenças em geral, têm o que chamamos de eleitores.
Quais os tipo de como grupos de palavras que têm uma função na frase.
E eles não podem realmente ser afastados uns dos outros.
>> Então, se eu digo, por exemplo, "Lauren ama Milo. "Eu sei que" Lauren "é um
constituinte e depois "amores Milo "é também outra.
Porque você não pode dizer como "Lauren Milo ama "ter o mesmo significado.
Não vai ter o mesmo significado.
Ou eu não posso dizer como "Milo Lauren ama. "Nem tudo tem o mesmo
significando com isso.
>> Assim, as duas coisas mais importantes sobre sintaxe são os tipos lexicais que é
basicamente a função que você tenho palavras por si mesmos.
Então você tem que saber que "Lauren" e "Milo" são substantivos.
"Love" é um verbo.
E a segunda coisa importante é que eles são tipos frasais.
Então você sabe que "ama Milo" é, na verdade, uma frase verbal.
Então, quando eu digo "Lauren," Eu sei que Lauren está fazendo algo.
O que ela está fazendo?
Ela está amando Milo.
Então é uma coisa toda.
Mas os seus componentes são um substantivo e um verbo.
Mas juntos, eles fazem uma frase verbal.
>> Então, o que podemos realmente fazer com lingüística computacional?
Então, se eu tiver alguma coisa, por exemplo, "amigos de Allison". Eu vejo se eu
se uma árvore sintática eu gostaria de saber que "Amigos" é uma frase que é um substantivo
substantivo e depois "de Allison" é um locução prepositiva em que "de" é
uma proposição e "Allison" é um substantivo.
O que eu poderia fazer é ensinar o meu computador que quando eu tenho um sintagma nominal e um
em seguida, uma frase preposicional.
Então, neste caso, "amigos" e depois "de Milo "Eu sei que isso significa que
NP2, a segunda, possui NP1.
>> Para que eu possa criar algum tipo de relação, algum tipo de função para ele.
Assim, sempre que eu vejo essa estrutura, que corresponde exatamente com "amigos de
Allison, "Eu sei que Allison detém os amigos.
Assim, os amigos são algo que tem Allison.
Faz sentido?
Então, isso é basicamente o que Gráfico Pesquisa faz.
Apenas cria regras para um monte de coisas.
Assim, "amigos de Allison", "meus amigos que vivem em Cambridge "," meus amigos
que vão para Harvard. "Ele cria regras para todas essas coisas.
>> Agora tradução automática.
Assim, a tradução automática também é algo estatística.
E, na verdade, se você se envolver em lingüística computacional, um monte de
o seu material vai ser estatísticas.
Então, como eu estava fazendo o exemplo com um monte de probabilidades de que eu era
cálculo, e então você começa a este número muito pequeno que é a final
probabilidade, e é isso que dá-lhe a resposta.
A tradução automática também usa um modelo estatístico.
E se você quiser pensar em máquina tradução no mais simples possível
forma, o que você pode pensar é apenas traduzir palavra por palavra, certo?
>> Quando você está aprendendo um idioma para o primeira vez, que geralmente é o que
você faz, certo?
Se você quiser, traduzir uma frase no seu idioma para o idioma
você está aprendendo, geralmente em primeiro lugar, você converter cada uma das palavras
individualmente, e em seguida, tentar para colocar as palavras no lugar.
>> Então, se eu queria traduzir este, [PORTUGUÊS LÍNGUA]
que significa "o gato branco fugiu." Se eu quisesse traduzi-lo a partir de
Português para Inglês, o que eu poderia fazer é, em primeiro lugar, eu só
traduzir palavra por palavra.
Assim, "o" é "a", "gato", "gato", "Branco", "branco", e então "Fugio" é
"Fugiu".
>> Então eu tenho todas as palavras aqui, mas eles não estão em ordem.
É como "o gato branco fugiu" que é gramatical.
Assim, então eu posso ter um segundo passo, que vai ser encontrar o ideal
posição para cada uma das palavras.
Então eu sei que eu realmente quero ter "Gato branco" em vez de "gato branco". Assim
o que eu posso fazer é, o método mais ingênuo seria a criação de toda a
permutações possíveis de palavras, de posições.
E então ver qual deles tem o maior probabilidade de acordo
para o meu modelo de linguagem.
E então, quando eu encontrar o que tem a mais alta probabilidade de que, o que é
provavelmente "o gato branco fugiu" essa é a minha tradução.
>> E esta é uma maneira simples de explicar como um monte de tradução automática
algoritmos funcionam.
Será que isso faz sentido?
Isso também é algo realmente emocionante que vocês podem explorar talvez por um
projeto final, certo?
>> ALUNO: Bem, você disse que era a maneira ingênua, então qual é
a forma não ingênua?
>> LUCAS FREITAS: A maneira não-ingênua?
OK.
Então a primeira coisa que é ruim sobre deste método é que eu só traduzido
palavras, palavra por palavra.
Mas às vezes você tem palavras que pode ter várias traduções.
Vou tentar pensar de alguma coisa.
Por exemplo, "manga" em lata Português quer ser "mangle" ou "manga". Assim
quando você está tentando traduzir palavra por palavra, pode-se dar-lhe
algo que não faz sentido.
>> Então, você realmente quer que você olhar para todos as possíveis traduções da
palavras e ver, em primeiro lugar, qual é a ordem.
Nós estávamos falando sobre permutando as coisas?
Para ver todas as ordens possíveis e escolher aquele com o maior
probabilidade?
Você também pode escolher todo o possível traduções para cada
palavra e, em seguida, ver -
combinado com as permutações -
qual deles tem a maior probabilidade.
>> Além disso, você também pode olhar para não apenas palavras, mas frases.
para que você possa analisar as relações entre as palavras e, em seguida, obter um
melhor tradução.
Também outra coisa, de modo que este semestre Na verdade, estou fazendo uma pesquisa em
Chinês-Inglês tradução automática, assim traduzindo
Chinês para o Inglês.
>> E uma coisa que fazemos é, além de utilizar um modelo estatístico, que é apenas
vendo as probabilidades de ver alguma posição em uma frase, eu sou
na verdade também adicionar um pouco de sintaxe para o meu modelo, dizendo: oh, se eu ver esse tipo
de construção, este é o que eu quero mudá-lo para quando eu traduzir.
Assim, você também pode adicionar algum tipo de elemento de sintaxe para fazer o
tradução mais eficiente e mais preciso.
OK.
>> Então, como você pode começar, se você quiser de fazer alguma coisa em computacional
lingüística?
>> Primeiro, você escolhe um projeto que envolve idiomas.
Assim, não há tantos por aí.
Há tantas coisas que você pode fazer.
E depois podemos pensar em um modelo que você pode usar.
Normalmente, isso significa que o pensamento de suposições, como, como, oh, quando eu era
como o pensamento das letras.
Eu era como, bem, se eu quero descobrir um que escreveu isso, eu provavelmente quer
olhar para as palavras da pessoa e usado ver quem usa essa palavra com muita freqüência.
Portanto, tente fazer suposições e tente pensar em modelos.
E então você também pode procurar on-line para o tipo de problema que você tem,
e ele vai sugerir para vocês modelos que talvez
modelado aquela coisa também.
>> E também você pode sempre enviar e-mail me.
me@lfreitas.com.
E eu só posso responder suas perguntas.
Podemos até mesmo pode se encontrar para que eu possa dar sugestões sobre as formas de
implementação de seu projeto.
E eu quero dizer, se você se envolver com lingüística computacional, ele vai
para ser grande.
Você vai ver que muito potencial.
E a indústria quer contratar você é tão ruim por causa disso.
Então, eu espero que vocês gostei.
Se vocês tem alguma dúvida, você pode me perguntar depois.
Mas obrigado.