Skip to content

πŸ—„οΈ БистСма для Π°Π½Π°Π»ΠΈΠ·Π° слоТности читаСмости тСкста

License

Notifications You must be signed in to change notification settings

NeZorinEgor/TextComplexity-Service

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

74 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

ΠœΠΈΠΊΡ€ΠΎΡΠ΅Ρ€Π²ΠΈΡ ΠΏΠΎ Π°Π½Π°Π»ΠΈΠ·Ρƒ тСкста

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ Π°Π½Π°Π»ΠΈΠ·Π° тСкста ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для анализирования тСкстов ΠΏΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌ:

  1. Π‘Π»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ чтСния
  2. Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ Π²ΠΎΠ΄Ρ‹ Π² тСкстС
  3. НастроСниС тСкста

Установка go_microservice

  1. Π‘ΠΊΠ»ΠΎΠ½ΠΈΡ€ΡƒΠΉΡ‚Π΅ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:
git clone https://github.com/NeZorinEgor/microservice_1.0
  1. УстановитС зависимости
go get github.com/go-sql-driver/mysql
go get github.com/gorilla/mux
go get github.com/ledongthuc/pdf
go get google.golang.org/grpc
  1. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…
CREATE TABLE `states` (
  `id` int UNSIGNED NOT NULL,
  `title` varchar(50) NOT NULL,
  `reading` int UNSIGNED NOT NULL,
  `water` int UNSIGNED NOT NULL,
  `mood` varchar(20) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
  1. Настройка ΠΏΠΎΠ΄ΠΊΠ»ΡŽΠ±Ρ‡Π΅Π½ΠΈΡ Π‘Π”
  • Π’ Ρ„Π°ΠΉΠ»Π΅ main.go ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π² строкС db, err := sql.Open("mysql", "login:password@tcp(127.0.0.1:3305)/db") Π½Π° ваши собствСнныС значСния для ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ….

ИспользованиС

  1. ΠŸΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°:
cd go_microservice
  1. ΠŸΡ€ΠΎΠΏΠΈΡˆΠΈΡ‚Π΅ Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ
go run main.go

ЗависимыС Π±ΠΈΠ±Π»bΠΎΡ‚Π΅ΠΊΠΈ

  • github.com/go-sql-driver/mysql Π­Ρ‚Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° прСдоставляСт Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ… MySQL Π² языкС программирования Go.
  • github.com/gorilla/mux Π­Ρ‚Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° прСдоставляСт ΠΌΠΎΡ‰Π½Ρ‹ΠΉ ΠΈ Π³ΠΈΠ±ΠΊΠΈΠΉ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ‚ΠΎΡ€ (router) для создания Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° языкС Go.
  • go get github.com/ledongthuc/pdf Π­Ρ‚Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° прСдоставляСт Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° PDF Π² языкС программирования Go.
  • google.golang.org/grpc Π­Ρ‚ΠΎ Π²Ρ‹ΡΠΎΠΊΠΎΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ распрСдСлСнных систСм, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ разрабатывался ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ Google. Он позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΊΠ»ΠΈΠ΅Π½Ρ‚-сСрвСрныС прилоТСния ΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° gRPC.

graph

Запуск ΠΈ сборка analysis_service

О сСрвисС

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ сСрвис, Π½ΡƒΠΆΠ½Π½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ саму Π»ΠΎΠ³ΠΈΠΊΡƒ Π°Π½Π°Π»ΠΈΠ·Π°, для этого Π½ΡƒΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π΅Π³ΠΎ.

Π‘Π±ΠΎΡ€ΠΊΠ°

  • Если Π²Ρ‹ Π½Π΅ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒ Π»ΠΎΠ³ΠΈΠΊΡƒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, ΠΈ Π΅Π΅ ΠΌΠΎΠ΄Π΅Ρ€Π½Π΅Π·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ ΠΊ ΠΏΡƒΠ½ΠΊΡ‚Ρƒ запуск

Π‘Π»Π΅Π΄ΡƒΠΉΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ инструкциям Π² консоли:

git submodule update --init --recursive
mkdir analysis_microservice/build
cd analysis_microservice/build
cmake ..

Π›ΠΈΠ±ΠΎ ΠΆΠ΅ собирайтС CMake Π² любой Π΄Ρ€ΡƒΠ³ΠΎΠΉ IDE которая ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ это, Π½Π΅ Π·Π°Π±ΡƒΠ΄Ρ‚ΡŒΠ΅ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ сабмодули

Запуск

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ вашС собранноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π»ΠΈΠ±ΠΎ Π±Ρ€Π°Ρ‚ΡŒ послСдний release ΠΈΠ· Π΄Π°Π½Π½ΠΎΠ³ΠΎ рСпозитория. Π§Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ сСрвСр всС Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ это IP ΠΈ ΠΏΠΎΡ€Ρ‚. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ для localhost тСстирования: ./analysis_service 127.0.0.1 1111

Бвязь ΠΌΠ΅ΠΆΠ΄Ρƒ go ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ сСрвисами

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ сСрвиз Π°Π½Π°Π»ΠΈΠ·Π° ΠΊ своСму ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρƒ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π²ΡΠ·Ρ‚ΡŒ .proto ΠΈΠ· Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… ΠΏΠ°ΠΏΠΎΠΊ ΠΈ ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ gRPC ΠΊΠ»ΠΈΠ΅Π½Ρ‚ для своСго языка, послС ΠΌΠΎΠΆΠ½ΠΎ с Π»Π΅Π³ΠΊΠΎΡΡ‚ΡŒΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ запросы ΠΈ ΠΎΡ‚Π²Π΅Ρ‚Ρ‹ сСрвиса. ОписаниС ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° общСния

service TextAnalysService  {
  rpc getResult (SettingsTextPB) returns (ResultParsingPB) {} // ОснованоС взаимодСйствиС с сСрвисом
}

message SettingsTextPB {
  string text = 1; // Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ тСкст Π½Π° Π²Ρ…ΠΎΠ΄
}

message ResultParsingPB {

  enum Mood { //НастроСниС тСкста
    sad = 0;
    happy = 1;
    lovely = 2;
    terrible = 3;
    boring = 4;
  }

  int32 water_value = 1; // Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ Π²ΠΎΠ΄Ρ‹ Π² тСкстк
  Mood mood = 2; 
  int32 hard_reading = 3; // Π‘Π»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ чтСния тСкста
}

ЗависимыС Π±ΠΈΠ±Π»Π΅ΠΎΡ‚Π΅ΠΊΠΈ

  • gRPC ΠΈ gProtobuf ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ сабмодули, Ρ‚Π°ΠΊΠΆΠ΅ protoc Π½ΡƒΠΆΠ½ΠΎΠΉ вСрсии Π»Π΅ΠΆΠΈΡ‚ Π² ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π°Ρ…
  • sqlite ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π±ΠΎΠ»Π΅Π΅ развСрнутая Π±ΠΈΠ±Π»Π΅ΠΎΡ‚Π΅ΠΊΠ° для с++, Ρ‚Π°ΠΊΠΆΠ΅ сабмодулСм, для Ρ…ΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ ΠΏΡ€Π΅Π΄Ρ‹Π΄Ρ‰ΡƒΡˆΠΈΡ… Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ².

Руководство ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ

ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ тСкст

About

πŸ—„οΈ БистСма для Π°Π½Π°Π»ΠΈΠ·Π° слоТности читаСмости тСкста

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published