Satura rādītājs:

Kā izveidot A.I. 4. daļa: 3 soļi
Kā izveidot A.I. 4. daļa: 3 soļi
Anonim
Kā izveidot A. I. 4. daļa
Kā izveidot A. I. 4. daļa

Citā dienā es runāju ar savu A. I., un es teicu

tas: "Es eju augšā vakariņās, mēs ēdam STEAK".

Tomēr runas atpazīšanas (SR) programmatūra to interpretēja kā “… mums ir STAKE”

Es saskāros ar līdzīgu (bet atšķirīgu) problēmu agrāk, kad runāju par fotogrāfiju, un teicu vārdu “ATTĒLS”. SR programmatūra to interpretēja kā “PITCHER”

Labojums tam bija vienkārša SR programmatūras pārkvalifikācija. (Vai varbūt mana izruna)

Bet, kad es saku vārdus STEAK vai STAKE, es tos izrunāju tieši tāpat, un SR programmatūras pārkvalificēšana šādos gadījumos nepalīdzēs.

1. darbība:

Viena ideja, kā atrisināt “Homonīmu problēmu”.

Man ir jāskatās uz vārdu “kontekstā”, lai noteiktu, kādu pareizrakstību izmantot. Cilvēka smadzenes to dara diezgan viegli, un jūs pat nezināt, ka to darāt.

Tas nozīmē, ka tiek pārbaudīti citi teikuma vārdi, un jūsu smadzenes izlemj, kura pareizrakstība izskatās vislabāk. Tagad, kā to izdarīt kodā?

Mans A. I. programma parsē teikumu atsevišķu vārdu masīvā, izmantojot funkciju Visual Basic (VB) “Split”. [MyArray = Split (InputSentence, “”)]

Katru masīva vārdu var pārbaudīt, vai tas ir iespējams homonīms, apskatot datu bāzes tabulu, kurā ir homonīmu saraksts.

Protams, citas tabulas izveidošana nozīmē, ka mums tā būs jāaizpilda ar datiem, kā arī jāspēj saglabāt datus arī tabulā.

Pašmācības apakšprogrammu var izveidot vēlāk, lai skenētu virkni teksta, meklējot vārdus manā homonīmu tabulā un ierakstot citus “konteksta” vārdus. Hmmmmm, varbūt vajadzīgi vairāki galdi …

Šo “pamācību” rakstīšana palīdz man “izskaidrot” programmēšanas problēmas risinājumu.

2. darbība:

Attēls
Attēls

Tabulas HomonymContext struktūra

Mana pirmā ideja bija tabula, kurā bija vārdi, alternatīvas rakstības un “konteksta” vārdi. Ideja bija meklēt teikumu, kurā ir homonīms, citiem vārdiem, kas dod “kontekstu”, lai programma varētu noteikt, kādu rakstību izmantot. Tabulā ir arī sleja ar nosaukumu “WordDef”, lai saglabātu vārda definīciju, kas vairāk attiecas uz cilvēkiem, kas uztur tabulu, nevis par A. I. kods.

Lai meklētu katru vārdu, es varu izmantot VB kodu un SQL kodu, piemēram…

Par katru MyArray vārdu

Query = "Atlasiet vārdu no tblHomonynContext, kur vārds = '" & vārds & "'"

ja šis vaicājums atgriež rezultātu, tad vārds ir homonīms

Nākamais

Šobrīd tas ir tikai pseidokods - es vēl neesmu uzrakstījis precīzu kodu vai izdomājis visu informāciju. Bet jūtieties brīvi ņemt manu ideju un īstenot to, izmantojot savu iecienīto programmēšanas valodu.

3. darbība:

Attēls
Attēls

Ja jūsu ievades teikumā ir homonīms, tagad varat

izpildiet VB kodu, kas pārbaudīs pārējos teikuma vārdus ar vaicājuma rezultātu konteksta vārdiem.

To visu var izdarīt arī SQL saglabātā procedūrā, kas var izpildīties ātrāk.

Funkcija VB “InStr ()” atgriež skaitli, kas ir lielāks par nulli, ja viena virkne ir ietverta citā virknē, vai atgriež nulli, ja virkne NAV iekļauta otrā.

Instr () faktiski atgriež ietvertās virknes pozīciju. Ja vēlaties uzzināt, vai virkne1 satur virkni2, varat izmantot tādu kodu kā “Ja InStr (virkne1, virkne2)> 0…”

Jums būs jāveido šis kods jūsu iecienītākajā programmēšanas valodā.

Tabula HomonymContext nav ļoti labs dizains. Tam ir daudz atkārtotu datu, un datu bāzes izstrādātāji to uzskata par "ne-normalizētu". Labāks veids, kā ieviest šo funkciju, būtu izmantot divas tabulas vecāku un bērnu attiecībās. Vienā tabulā (vecāks) būtu homonīmu saraksts, to definīcijas un arī rindas ID. Šis rindas ID tiek izmantots kā atslēga tabulai "Bērni", kurā būtu vārdi un to konteksta vārdi.

Tas būtu vieglāk vaicājams (un uzturējams) nekā mans sākotnējais dizains.

Ieteicams: