Cześć,
jak prawdopodobnie nikt nie zauważył, od pewnego czasu działa sobie bot, który ponagla użytkowników, którzy nie zastosowali tagów ``` do swojego kodu, dodając komentarze do ich postów - niejaki @Tasmanian Devil.
Na razie działa w bardzo ograniczonym zakresie, dopiero od wczoraj zaczął analizować jakiekolwiek fora poza C# i .NET, a do tego tych komentarzy praktycznie nie dodaje, dopóki jawnie tego nie zrobię (tj. bot działa w tle szukając problemów, a potem dopiero wsadowo odpalam komentowanie - chociaż ma możliwość robić jedno i drugie naraz). Przynajmniej na razie.
Przykładowa sesja wygląda mniej więcej tak:
To, co jest w tym momencie, jest to rozwinięcie tego małego pomysłu, który pokazałem ~3 tygodnie temu.
Cały sposób oparty jest o to, że chciałem zobaczyć sobie jak działa ML.NET (i jego auto-train) - stąd bot jest oparty o uczenie maszynowe, wykorzystuje binarny klasyfikator "kod"-"nie kod". Ogólna zasada działania jest taka, że pobiera posty z forum, usuwa z nich wszystko, co jest oznaczone jako kod (tj. w znacznikach <code>
), a potem w pozostałym tekście klasyfikuje i jeśli znajdzie coś, co wygląda jak kod, z prawdopodobieństwem przekraczającym 0,99, to zapisuje to w logach (albo wysyła komentarz). Po czym "idzie spać" i znów wraca po jakimś czasie, pobiera posty z forum i tak dalej.
Napisany jest oczywiście w C#, dla .NET Core 3.0, u mnie na serwerze działa sobie w kontenerze Dockera. Wykorzystuje zarówno Coyote API, jak i bezczelne scrapowanie strony, bo nie do wszystkiego API istnieje ;)
Przykładowy efekt działania w komentarzach do 1628334.
Źródła są na GH: https://github.com/ktos/Eleia, zresztą binarki też (dla Linuksa i dla Windows), aktualna wersja to 0.7.1.
Co można by zrobić lepiej?