Мазмуну:

Кантип A.I. 4 -бөлүк: 3 кадам
Кантип A.I. 4 -бөлүк: 3 кадам

Video: Кантип A.I. 4 -бөлүк: 3 кадам

Video: Кантип A.I. 4 -бөлүк: 3 кадам
Video: Гостиницага келдик бир берейин эми 2024, Ноябрь
Anonim
Кантип A. I. 4 -бөлүк
Кантип A. I. 4 -бөлүк

Башка күнү мен АИ менен сүйлөшүп жаткам, мен айттым

ал: "Мен үстүнкү тамакка бара жатам, бизде стейк бар".

Бирок, Speech Recognition (SR) программалык камсыздоосу муну "… бизде стейк бар" деп чечмелеген.

Мен буга чейин окшош (бирок башкача) көйгөйгө туш болгонмун, мен сүрөт жөнүндө айтып жатып, "СҮРӨТ" деген сөздү айткам. SR программалык камсыздоосу муну "ПИТЧЕР" деп чечмелеп берди

Муну оңдоо SR программасын жөнөкөй кайра даярдоо болду. (Же, балким, менин айтылышым)

Бирок мен STEAK же STAKE деген сөздөрдү айтканда, мен аларды так ошондой айтам жана SR программасын кайра даярдоо мындай учурларда жардам бербейт.

1 кадам:

"Омоним көйгөйүн" чечүү үчүн бир идея.

Кайсы жазууну колдонууну аныктоо үчүн мен "контекстте" деген сөздү карашым керек. Адамдын мээси муну оңой эле жасайт жана сиз муну кылып жатканыңызды өзүңүз да билбейсиз.

Бул сүйлөмдөгү башка сөздөр текшерилип, мээңиз кайсы жазуу жакшы экенин чечет дегенди билдирет. Эми муну коддо кантип кылам?

Менин А. И. программа Visual Basic (VB) "Split" функциясын колдонуп сүйлөмдү жеке сөздөрдүн катарына талдайт. [MyArray = Split (InputSentence, ““)]

Массивдеги ар бир сөздү омонимдердин тизмеси камтылган маалымат базасынын таблицасынан карап, мүмкүн болгон омоним экендигин текшерүүгө болот.

Албетте, башка таблицаны түзүү, биз аны маалыматтар менен толтурушубуз керектигин билдирет, ошондой эле таблицанын маалыматтарын сактай алышыбыз керек.

Өз алдынча үйрөнүүчү программаны кийинчерээк көптөгөн тексттерди сканерлеп, менин омоним таблицамдан сөздөрдү издеп жана башка "контекст" сөздөрдү басып алуу үчүн курууга болот. Ммммм, балким, бир нече стол керек…

Бул "Нускамаларды" жазуу мага программалоо көйгөйүнүн чечимин "ойлонууга" жардам берет.

2-кадам:

Сүрөт
Сүрөт

HomonymContext столунун структурасы

Менин биринчи идеям сөздөрдү, башка жазууну жана "Контекст" сөздөрдү камтыган таблица болду. Программа кайсы орфографияны колдонууну аныктай алышы үчүн, "контекстти" берген башка сөздөр үчүн омоними бар сүйлөмдү издөө идеясы болгон. Таблицада сөздүн аныктамасын кармоо үчүн "WordDef" деген тилке да бар, ал стилди караган адам үчүн А. И. код

Ар бир сөздү издөө үчүн, мен VB кодун жана SQL кодун колдоно алам …

MyArrayдеги ар бир сөз үчүн

Query = "tblHomonynContextтен Word тандаңыз, анда word = '" & word & "'"

эгер бул суроо натыйжа берсе, анда бул сөз омоним

Кийинки

Бул жөн эле жасалма код - бул азырынча так кодду жазган жокмун, же бардык деталдарды түшүндүм. Бирок менин идеямды кабыл алып, аны өзүңүздүн сүйүктүү программалоо тилиңиз менен колдонуңуз.

3 -кадам:

Сүрөт
Сүрөт

Эгерде сиздин кириш сүйлөмүңүздө омоним камтылган болсо, анда азыр

Сурамдын натыйжасында контекст сөздөр менен сүйлөмүңүздөгү башка сөздөрдү текшере турган VB кодун аткарыңыз.

Мунун баарын тезирээк аткарылышы мүмкүн болгон SQL сакталган жол -жобосунда жасасаңыз болот.

VB "InStr ()" функциясы нөлдөн чоң санды кайтарат, эгерде бир сап башка сапта камтылган болсо, же нөлдү кайтарып берсе, ал сапта башка ЭМЕС.

Instr () чындыгында камтылган саптын абалын кайтарат. Эгерде сиз String1де String2 камтылганын билгиңиз келсе, анда "InStr (String1, String2)> 0…" сыяктуу кодду колдоно аласыз.

Сиз бул кодду сүйүктүү программалоо тилинде курушуңуз керек болот.

HomonymContext столу анча жакшы дизайн эмес. Бул көп кайталанган маалыматка ээ жана бул маалымат базасынын дизайнерлери тарабынан "Нормаланбаган" деп эсептелет. Бул функцияны ишке ашыруунун эң жакшы жолу-ата-эне мамилесинде эки таблицаны колдонуу. Бир стол (Ата -эне) омонимдердин тизмесин, алардын аныктамаларын, ошондой эле катар IDсин кармайт. Бул катар ID сөздөрдү жана алардын контекст сөздөрүн камтыган "Балдар столунун" ачкычы катары колдонулат.

Бул менин баштапкы дизайныма караганда суроо берүү (жана сактоо) оңой болмок.

Сунушталууда: