Saturday, November 4, 2023

AI: Detecting phone number and email in messages

In e-commerce applications operating on a marketplace model, a significant challenge is the exchange of phone numbers and email addresses through messages between vendors and customers. This allows them to bypass the platform, resulting in a loss of commission revenue for the site. Users may employ inventive methods to evade standard detection algorithms that rely on regular expressions, such as spelling out numbers, e.g. "fivethreetwo" instead of "532". To develop a comprehensive list of such techniques, you could prompt ChatGPT with: 'I have a webpage with a messaging feature. I want to prevent the inclusion of phone numbers and emails in messages. What are some ways users might try to circumvent my safeguards?'

This issue presents an ideal challenge for AI to address. I experimented with OpenAI's text-davinci-003 model but had little success, it failed for most of my test cases. Then I tried the gpt-4 model which was much better. I wrote the following PHP script (with help from ChatGPT4) to tackle the phone number and email detection problem in Turkish text messages. Note that to verify that an AI script works, due to the random nature of AI, you should run it a couple of times with the same input to be sure that it provides the expected output every single time. Note also that the message 'şunu dene jane at example 532 222 33', causes AI to fail 50% of the time, because AI counts number of digits as 9 but it is 8! It also sometimes detects an email and sometimes not, so there is still some prompt engineering work to do.

Thursday, April 13, 2023

Adventures with chatGPT

Recently I came across a surprising result with a short C++ code and asked GPT4 for guidance, it performed well:

Me: On visual studio 2022, when building in debug x86, why is the variable "a" printed as strange values like 4294967296 in the following c++ code: 

#include <stdio.h>
int main() {
    for (unsigned long long i = 0; i < 5; i++) {
        unsigned long long a = i;
        printf("i = %u, a = %llu\n", i, a);
    }
    getchar();
    return 0;
}

Thursday, March 23, 2023

Why are your grades important?

Below is the formula used by TÜBİTAK to rank and filter job applicants before an interview:

Let's say your Turkish university exam rank was 50000. Than you would have to have a CGPA of at least 3.2 - 10000 / 50000 = 3.0 (75%) to be even considered for an interview. Otherwise it won't matter how good an engineer you are. The lower your university entrance rank, the higher your CGPA should be. If on the other hand your rank was 500, you wouldn't need to worry about CGPA because 10000/500 = 20 which satisfies this criteria more than enough. As you can see, the exam rank has the highest effect. But that stage has long past for most of you, so concentrate on CGPA.

If for example 5 people are to be hired, usually the first 4*5 = 20 people are selected. After this initial selection, you move on to the interview and there your engineering skills are more important than your CGPA. But to get a chance to show your skills, you need good grades.

If you want to maximize the number of job interviews, stay above a CGPA of 3.0.