Google Asszisztens – Api.ai (fontosabb fogalmak, kezdő lépések)

A Google Asszisztens képes kérdésekre válaszolni, bizonyos információkat közölni. Alapértelmezetten be van tanítva néhány dologra, de beprogramozhatjuk saját igényeink szerint is.

Google Asszisztens

Egy beszélgetést biztosít a felhasználó és a Google között.

Google Home

Egy eszköz, ami a Google Asszisztenst használja.

Actions on Google

Egy felület, ahol a fejlesztők kibővíthetik a Google Asszisztens tudását. Continue reading

Webes alapok kutatása #4 (AJAX + JSON)

Az AJAX egy olyan technika, amellyel hozzáférhetünk a szerverhez a weboldalunk használatával. A neve az Asynchronous Javascript And XML akronímja. Használatának előnye, hogy:

  • Frissíthetjük a weboldalt, annak újra töltése nélkül
  • Kérhetünk le adatot a szervertől – miután az oldal betöltött
  • Fogadhatunk adatot a szervertől – miután az oldal betöltött
  • Küldhetünk adatot a szervernek – a háttérben

Continue reading

Webes alapok kutatása #2 (Bootstrap)

Egyik eszköz, amely az MVC webes projektem megvalósítása során használatba lett véve a Bootstrap nevezetű keretrendszer lett. A Bootstrap egy igen hasznos kis keretrendszer, melynek segítségével dinamikusabban, és egyszerűbben mehet a weboldal fejlesztése, ugyanis kínál egy alap felhasználói felületet, amit később a fejlesztők személyre tudnak szabni. Ez egy jó dolog az olyan fejlesztőknek, akik nem kifejezetten vannak megáldva a weblap design tehetségével, vagy időt akarnak vele spórolni. Continue reading

Webes alapok kutatása #1 (Entity Framework Code First)

Az Entity Framework Code First -öt a projektben főleg a rugalmasabb adatbázis létrehozására, alakítására, optimalizálására fogom használni. Az EFCF feladata elsősorban az lesz, hogy a C# -ban létrehozott osztályok, kontextus osztályok alapján adatbázisokat hozzon létre. Így nagyobb hangsúlyt lehet fektetni magára az oldal designra, ahelyett, hogy a régi módszer szerint felépített adatbázis köré tervezett oldalt fejlesztenénk. Continue reading

API kutatás/tesztelés #5 (MS Graph API\O365)

A következő API, amelyre sort kerítettem a Microsoft Graph API, amellyel az összes létező Microsoft API elérhető egyetlen token segítségével, így azt nem kell minden API -nál külön kérni. Az MS Graph felhő szolgáltatásába beletartozik az Azure Active Directory, Office365, SharePoint, OneDrive, OneNote, és Planner is.

A hozzáféréshez igyekeztek a többi nagy felhő szolgáltató által alkalmazott szabványhoz igazodni, így is könnyebbé téve a rendszer használatát. Először is szükségünk lesz egy Microsoft fiókra, amiben regisztrálnunk kell egy új alkalmazást. A regisztráció kezdetén csak az alkalmazást kell megadnunk, a mi esetünkben az legyen mondjuk GraphAPItest. A program legenerálása után megkapjuk az alkalmazás azonosítóját, lejjebb pedig generálhatunk alkalmazás titkot hozzá.

G1 Continue reading

API kutatás/tesztelés #4 (FacebookAPI)

Következőnek a Facebook API irányába indultam el kutatásom alatt. A hivatalos Facebook SDK beszerezhető a https://github.com/facebook-csharp-sdk/facebook-csharp-sdk oldalról. A dokumentáció, ami segítségemre volt pedig a https://developers.facebook.com/docs/ oldalon érhető el. Ebben az esetben egy elég egyszerű oldalt készítettem el, amely egy gombot tartalmaz.F2

Continue reading

API kutatás/tesztelés #3 (LinkedIn:Sparkle.LinkedInNET)

A következő szociális oldal API, aminek nekiálltam a LinkedIn , azon belül is a Sparkle.LinkedIn nevű API. Az API beszerezhető a https://github.com/SparkleNetworks/LinkedInNET oldalról, vagy a Visual Studióban, a Nuget csomagkezelőn keresztül az Install-Package Sparkle.LinkedInNET parancs futtatásával. Egy alap dokumentációt, ami a REST API, és OAuth részeket nagyjából lefedi a https://developer.linkedin.com/docs címen érhetjük el. Ezek segítségével valósítottam meg a kis kód részletet, amellyel felhasználói adatokat tudtam lekérdezni a LinkedIn oldaláról.

Continue reading

Kérdőív feldolgozó rendszer #4: Beüzemelés & négyzetek és válaszok felismerése

EmguCV használata a projektben

Legkönnyebben: NuGet-tel le lehet tölteni, bár a frissítés dátuma alapján, nem egy friss változat, közel fél évvel le van maradva a hivatalos kiadástól. (Changelog-ok alapján nekem ez is megfelel.)
NuGet-tel: Install-Package EmguCV, az alábbi package-ek lesznek még hozzáadva a projekthez: ZedGraph és OpenTK. Az EmguCV részéről pedig három fájl:Emgu.CV.UI.dll, Emgu.CV.UI.GL.dll, Emgu.CV.World.dll.

Add Reference-féle importálásnál pedig a fent már említett három fájlt beimportáljuk, illetve célszerű a ZedGraph-ot is mellékelni.

Képfelismerés

A programozás a Visual Studio 2015-ben, C# nyelvben történt. A példaprogram jelenleg felismeri a négyzeteket, kigyomlálja azokat, amelyeket esetleg kétszer ismert fel. (Például ha vastag a vonal vagy rossz minőségű a kép.)  A kód nagy része a hivatalos példából származik, de jónéhány változtatást eszközöltem rajta.

A program bal oldali képdobozában az eredeti, feldolgozásra váró kép jelenik meg. Ezután az Elemzés gombra kattintva megjelennek a program által talált négyzetek a jobb oldali dobozban.

Jobb oldali TextBoxban pedig az algoritmusom munkája látszik, megnézi, hogy a négyzetek közül melyek vannak bejelölve, illetve kiírja a négyzetek középpontjainak a koordinátáit. Amennyiben be van jelölve egy opció, akkor a válaszhoz tartozó négyzetet nem látja a képfelismerő, ahogy az a következő példán is látszik:

 

Továbbá már az érvénytelen választ (itt: egynél több van bejelölve) is képes kezelni. A válaszok kezelése (mi van bejelölve és mi nincs) lista segítségével van megvalósítva.

A négyzetfelismerést kipróbáltam létező kérdőíven is, mely kiváló eredményt hozott.

EREDETIKEP_KERDOIV

 

Kérdőív feldolgozó rendszer #3: Követelményrendszer & hibás válaszok

Tervezett főbb funkciók listája (2016. december)

Szakdolgozat II befejezésére:

  • App:
    Kérdőív válaszok felismerése
    Kérdőív szöveges részeinek felismerése és kivágása (személyes adatok, szöveges mezők)
    Kivágott szöveges részek rendezése
    Adatok mentése adatbázisba (képeknek a fájlneve)
    Sql szerver konfigurálhatóság
    Több fajta adatbázis támogatása
    Képek tárolóból beolvasása
    Alapvető OCR-funkciók implementálása
  • SQL szerver:
    Segítség a letöltéshez és/vagy a csomag tartalmaz egy telepítőt
    Silent telepítés
    Alapvető hibaelhárítás (tudok-e csatlakozni, jó-e az user/pass)
  • Kimutatást készítő modul
    Diagram, kis leírás (sablonozható)
  • Kézírást felvivő modul
    Login/névbeállító ablak, hogy látható legyen ki fért hozzá az adatokhoz
    Egyszerű egy ablakos alkalmazás, melyben megjelenik a kivágott kép
    Kép nagyítható, kicsinyíthető, fekete-fehérre váltható
    Szövegbeviteli mező a válaszhoz

 

Opcionális funkciók

  • Azure integráció (storage elérés, nem VM-ben való futtatás esetén)
  • Active Directory támogatás
  • .NET Core támogatás – Linuxon futtatás

Javítások kitöltés közben, hibakezelés
Sokakkal előfordult – velem is -, hogy kitöltés közben elkalandozott, vagy félrecsúszott a keze és rossz opciót jelölt be. Mivel a programot fel kell készíteni az összes lehetséges helyzetre, így erre is. Az általam látott kérdőívek többségénél az volt látható, hogy a véletlenül bejelölt választ egyszerűen csak lesatírozták, aztán a jót pedig nyilvánvalóan x-szel jelölték. Emiatt nekem az fordult meg a fejemben, hogy ha egy sorban az x adható válasz helyett x+n választ adtak, akkor össze kell hasonlítani a bejelölt válaszokat, az alábbi módon:

negyzetek
Algoritmus megtalálja a négyzeteket, azokat kivágja, majd összehasonlítja a kettőt, amelyikben több nem fehér (vagy háttérszín) pixel van, az lesz a kérdésre adott válasz.

Hibakezelés fontos dolog lesz, hiszen a hiányosan kitöltött kérdőíveket fel kell ismerni, nem akadhat be a program, hogy keresi az adott kérdésre a választ, de ahhoz vagy nem töltöttek ki semmit, vagy mindent kitöltöttek. Például amennyiben közel az összes választ bejelölte valaki, de csak egyet kellett volna, akkor azt a válaszát érvénytelennek jelöljük és ugrunk tovább a többire.

Kimutatásnál jól jöhet, hogy melyik kérdésre hány feldolgozható, érvénytelen és üres válasz érkezett, ezzel a kérdésekről is készülne visszajelzés, amelyek alapján talán lehetne azokon is javítani.