We are going to create a function, which can read the information from files !truth.txt
or !prediction.txt
into the dictionary data structure.
Task:
utils.py
, create a function read_classification_from_file()
that will read the mail classes from a text file.
Why do we need it:
Function read_classification_from_file()
(in module utils.py
) has to conform to the following specifications:
read_classification_from_file(fpath) |
|
---|---|
Input | The path to the text file (most likely either !truth.txt or !prediction.txt ) |
Output | A dictionary containing either SPAM or OK label for each filename in email corpus. |
The function loads a text file contaning a pair of strings per line, separated by single space, like this:
email01 OK email02 OK email03 SPAM email1234 OKand creates a dictionary (the order of individual “rows” in the following listing is not important):
{'email1234': 'OK', 'email03': 'SPAM', 'email02': 'OK', 'email01': 'OK'}
If the file is empty, it returns an empty dictionary.
Task:
utils.py
, create function write_classification_to_file()
that will write the (usually predicted) mail classes to a text file.
Why do we need it:
!prediction.txt
file.
Function write_classification_to_file()
(in module utils.py
) should conform to the following specifications:
write_classification_to_file(cls_dict, fpath) |
|
---|---|
Inputs | (1) dictionary containing the email file names as keys, and email classes (SPAM or OK ) as values. |
(2) The path to the text file that shall be created. | |
Output | None. |
The following code
>>> cls_dict = {'email1234': 'OK', 'email03': 'SPAM', 'email02': 'OK', 'email01': 'OK'} >>> fpath = '1/!prediction.txt' >>> write_classification_to_file(cls_dict, fpath)
shall create file !prediction.txt
in directory 1
(the directory must exist) with the following contents:
email01 OK email02 OK email03 SPAM email1234 OK
The actual order of individual rows in the file is not important.
If the cls_dict
is empty, the function shall create an empty file.