Taula de continguts:

Com fer un A.I. Part 4: 3 passos
Com fer un A.I. Part 4: 3 passos

Vídeo: Com fer un A.I. Part 4: 3 passos

Vídeo: Com fer un A.I. Part 4: 3 passos
Vídeo: КАК НАСТРОИТЬ L4D2 2024, Juliol
Anonim
Com fer un A. I. Part 4
Com fer un A. I. Part 4

L’altre dia parlava amb el meu A. I., i ho vaig dir

"Vaig a sopar a dalt, estem prenent STEAK".

No obstant això, el programari de reconeixement de veu (SR) va interpretar això com "… estem tenint STAKE"

M'he trobat amb un problema similar (però diferent) abans quan parlava d'una fotografia i vaig dir la paraula "IMATGE". El programari SR ho va interpretar com "PITCHER"

La solució per a això era una simple reciclatge del programari SR. (O potser la meva pronunciació)

Però quan dic les paraules STEAK o STAKE, les pronuncio exactament de la mateixa manera, i el reciclatge del programari SR no ajudarà en casos com aquest.

Pas 1:

Una idea per resoldre el "problema homònim".

He de mirar la paraula "en context" per determinar quina grafia utilitzar. El cervell humà ho fa amb força facilitat i ni tan sols sabeu que ho feu.

Això vol dir que s’examinen altres paraules d’una frase i el vostre cervell decideix quina grafia es veu millor. Ara, com puc fer-ho amb codi?

El meu A. I. El programa analitza una frase en una matriu de paraules individuals mitjançant la funció "Dividir" de Visual Basic (VB). [MyArray = Split (InputSentence, "")]

Es pot comprovar cada paraula de la matriu per veure si és un possible homònim cercant en una taula de base de dades que contingui una llista d’homònims.

Per descomptat, crear una altra taula significa que l’haurem d’omplir de dades i també haurem de ser capaços de mantenir les dades de la taula.

Més endavant es pot crear una subrutina d’autoaprenentatge per escanejar un munt de text, cercant paraules a la taula homònima i captar altres paraules de “context”. Mmmmmm, potser calen diverses taules …

Escriure aquests "Instructables" m'ajuda a "raonar" una solució a un repte de programació.

Pas 2:

Imatge
Imatge

Estructura de la taula HomonymContext

La meva primera idea va ser una taula que contenia paraules, grafies alternatives i paraules de context. La idea era buscar una frase que contingués un homònim, per altres paraules que donin el "context", de manera que el programa pugui determinar quina grafia utilitzar. La taula també conté una columna anomenada "WordDef" per contenir la definició de la paraula, que és més per a l'home que manté la taula que per A. I. codi.

Per cercar cada paraula, puc utilitzar codi VB i codi SQL com …

Per a cada paraula de MyArray

Consulta = "Selecciona Word de tblHomonynContext on word = '" & word & "'"

si aquesta consulta retorna un resultat, la paraula és un homònim

Pròxim

En aquest moment, aquest és només un pseudocodi; encara no he escrit el codi exacte ni he descobert tots els detalls. Però no dubteu a prendre la meva idea i implementar-la amb el vostre propi llenguatge de programació preferit.

Pas 3:

Imatge
Imatge

Si la vostra frase d’entrada conté un homònim, ara podeu fer-ho

executeu un codi VB que comprovarà les altres paraules de la vostra frase, amb les paraules contextuals als resultats de la consulta.

També podeu fer-ho tot en un procediment emmagatzemat SQL, que pot executar-se més ràpidament.

La funció VB "InStr ()" retornarà un nombre superior a zero, si una cadena es troba dins d'una altra cadena, o tornarà zero, si la cadena NO es troba a l'altra.

Instr () en realitat retorna la posició de la cadena continguda. Si només voleu saber si String1 conté String2, podeu utilitzar codi com "If InStr (String1, String2)> 0 …"

Haureu de construir aquest codi en el vostre llenguatge de programació preferit.

La taula HomonymContext no és un disseny molt bo. Té moltes dades repetides, i això es considera "no normalitzat" pels dissenyadors de bases de dades. Una millor manera d'implementar aquesta funcionalitat seria utilitzar dues taules, en una relació pare-fill. Una taula (The Parent) contenia una llista d’homònims, les seves definicions i també un identificador de fila. Aquest identificador de fila s'utilitza com a clau de la "taula infantil" que contindria les paraules i les seves paraules de context.

Això seria més fàcil de consultar (i de mantenir) que el meu disseny original.

Recomanat: