Proiectul este implementarea muncii noastre privind retelele neuronale bilaterale introduse in cele doua lucrari ale noastre:

  • SANER’19: Retele neuronale de dependenta bilaterala pentru clasificarea algoritmului cross-language, de Nghi DQ BUI, Yijun YU, Lingxiao JIANG, in cea de-a 26-a editie a IEEE International Conference on Software Analysis, Evolution and Reengineering, Research Track, Universitatea Zhejiang din Hangzhou , 24-27 februarie 2019
  • NL4SE-AAAI’18: Invatarea Cross-Language pentru clasificarea programelor utilizand retele neuronale convolutionale bilaterale bazate pe copaci, de Nghi DQ BUI, Lingxiao JIANG si Yijun YU. In lucrarile celei de-a 32-a conferinte AAAI privind inteligenta artificiala (AAAI) Workshop despre NLP pentru inginerie software, New Orleans, Lousiana, SUA, 2018.

Lucrarile le gasiti aici: https://bdqnghi.github.io/publications/

Iata structura noastra de retea neuronala propusa. Pe scurt, aceasta structura este o varianta a Retelei neuronale bilaterale (SNN), care este o clasa de retea neuronala utilizata pentru gasirea similitudinii sau a unei relatii intre doua lucruri comparabile, care poate fi cunoscuta si sub denumirea de „retea neuronala siameza”. Fiecare subretea in acest caz poate fi:

  • Retea neuronala convolutionala bazata pe copaci (TBCNN) (https://arxiv.org/abs/1409.5718)
  • Gated Graph Neural Network (https://arxiv.org/abs/1511.05493): implementarea GGNN pentru aceasta sarcina poate fi gasita aici: https://github.com/bdqnghi/ggnn_graph_classification
  • Dependency Tree Convolutional Neural Network (DTBCNN) (https://bdqnghi.github.io/files/SANER_2019_bilateral_dependency.pdf)

Instalare

Am pregatit un flux de lucru complet automatizat (Figura 1) pentru a va clasifica programele in functie de numele algoritmilor cunoscuti.

Figura 1. Fluxul de lucru pentru utilizarea instrumentelor noastre

Pentru a face acest lucru, trebuie mai intai sa instalati comanda docker

sudo apt-get install docker-ce

Introduceti urmatoarele scripturi pe linia de comanda pentru a construi si a rula respectivul sistem:

Modificati intrarile

In interiorul subfolderului de intrare, veti gasi urmatoarele fisiere:

input ├── algorithm.name ├── all.algo ├── all.lang ├── config.json ├── language.name └── srcml_node_map.tsv

Daca doriti doar sa vedeti cum functioneaza, am pregatit doar doi algoritmi dupa cum urmeaza:

algorithm.name: Numele algoritmilor

Nota. Puteti adauga mai multe nume de algoritmi. In lucrarea NL4SE, am folosit 6 algoritmi, inclusi in fisierul all.algo. Puteti inlocui algorithm.name cu all.

putasfollando sexo gratis videos
hombres pajeandose comiendo tetas
jovencitasxxx maduras comiendose el coño
cachondas españolas monjas folladoras
jovencitos desnudos enanas tetonas
xxxjovenes sexo videos caseros
xxxabuelas porno hat
cine para adultos gratis padre enseña a follar a su hija
maduras españolas sexo travestis jovencitas
hombres masturbando a mujeres vidio xxxx
videos mamadas orgasmos extremos
se corre en el coño de su madre me corro sin avisar
mamadas españolas trio en la playa
todoporno cincuentona española follando
coñitos heidi porno
chochitos jovenes desvirga a su hermana
pornoxxxxx colegialas anal
folladas extremas trio casero español
incestos madres hijos porno amas de casa
videos xxx gratis español follando despues de la fiesta

algo.

language.name: nume de limbaje de programare

Nota Puteti adauga mai multe limbaje de programare. In lucrarea NL4SE, am folosit doar C ++ si Java. Alte limbaje de programare sunt incluse in fisierul all.lang. Puteti inlocui language.name cu all.lang.

config.json: configuratia API-ului Github, va rugam sa o inlocuiti cu propriul dvs. nume de utilizator si jeton de acces.

{“GITHUB_USERNAME”: “…”, “GITHUB_ACCESS_TOKEN”: “…”}

srcml_node_map.tsv: tipurile de nod de sintaxa ale limbajului (limbajelor) de programare selectat (e)

UNIT_KIND = 0 DECL = 1 DECL_STMT = 2 INIT = 3 EXPR = 4 EXPR_STMT = 5 COMENTAR = 6 CALL = 7 CONTROL = 8 INCR = 9 … STRONG = 383 OMP_OMP = 384 SPECIAL_CHARS = 385

Retineti ca trebuie sa va asigurati ca acest fisier este in concordanta cu parserul de baza.

$ docker run -it fasttool / fast fast -v fast v0.0.7 commit commit: 3e368dd1e56f5bb8f02673b1c7441f567eab67ee with local changes id: e1b7ca5bf36050ce774cb2650446115bb49bf91ac5d889a9dbb4911

Daca este pregatita o versiune diferita de rapid, ar putea necesita un fisier de intrare regenerat ./ast2vec/ast2vec/fast_pb2.py daca exista vreo modificare in gramatica limbii.

Alti parametri pentru cadrul tensorflow sunt stocati in urmatoarele doua fisiere, fiecare corespunzand unei rulari Tensorflow.

./ast2vec/ast2vec/parameters.py ./bi-tbcnn/bi-tbcnn/parameters.py

Referinte

@inproceedings {DBLP: conf / aaai / BuiJY18, author = {Nghi DQ Bui and Lingxiao Jiang and Yijun Yu}, title = {Invatarea Cross-Language pentru clasificarea programelor folosind retele neuronale convolutionale bilaterale bazate pe copaci}, booktitle = {Atelierele al celei de-a treizeci si a doua conferinta {AAAI} de inteligenta artificiala, New Orleans, Louisiana, SUA, 2-7 februarie 2018.}, pagini = {758-761}, an = {2018}, crossref = {DBLP: conf / aaai / 2018w}, url = {https://aaai.org/ocs/index.php/WS/AAAIW18/paper/view/17338}, timestamp = {Joi, 19 iul.2018 13:38:55 +0200 }, biburl = {https://dblp.org/rec/bib/conf/aaai/BuiJY18}, bibsource = {dblp bibliografie informatica, https://dblp.org}} @INPROCEEDINGS {8667995, author = {B . {Nghi DQ} si Y. {Yu} si L. {Jiang}}, booktitle = {2019 IEEE 26th International Conference on Software Analysis,