SlideShare une entreprise Scribd logo
1  sur  10
Télécharger pour lire hors ligne
11-792 Honeydew Project Mid-term Report
                                 Honeydew Team

1 An Introduction to Honeydew
Today scheduling a meeting via email becomes popular. However, creating a meeting in
a user’s calendar can be tedious. Honeydew is an intelligent agent, which uses machine-
learning algorithms to extract all required information from a meeting email and then
create suggestions for the users. The users can correct or verify the suggestions, and
proceed to place the meeting in his calendar. The agent can dramatically reduce user’s
workload of extracting all information from emails and putting them in his/her electronic
calendar. The agent is also able to automatically improving its performance by learning
from human feedback.

Since our task in this class is significantly based on a large amount of work of many
people who have devoted their time to the VIO and honeydew projects, our progress
somewhat deviates from the normal track of software engineering practices. In particular,
we spent a significant amount of time reading the code, in hope of figuring out the
responsibilities and interactions between the classes. Our artifacts are partially based on
our half-digested understanding of the code, and also, we start to add new functionalities
to honeydew under such circumstances.

2 Honeydew Workflow
Before diving into details, we briefly describe the working process of Honeydew in this
section.

1) User clicks the honeydew button after receiving a e-mail about requesting a meeting

2) Honeydew gets the information from VIO and predicate the meeting date

3) Return parse result to the user and user manually confirm it

4.1) Using the submit to signal honeydew to revise system algorithm

4.2) User gives up no matter what the reason is

VIO = form classification + form filtering suggestion + external reference resolutions

VIO extracts actual related data from the e-mail message.

The assumption is VIO will enter first 5 data fields, and the meeting date is the predicated
value. That means, date expression like quot;next Wednesdayquot; is for quot;what dayquot;.
Each field in the meeting form can be modified except for the Message Date.

Detailed meeting information such as the meeting time and location is usually buried in
the bulk of the meeting notification text, and how to accurately identify and extract such
information is a challenge of this project.

3 Project Objectives
In this project, we set two major goals:

1. Get the Honeydew operational for a community of users (such as students, TAs and
professors in 11-792 SE), collect their e-mails about the meeting and analyze the
accuracy of the system. At the same time, we can use a questionnaire to know user
experience about the Honeydew and know about the drawbacks. Our analysis will be
focused on Honeydew with Google Calendar.

1.1 Since Honeydew does not work on Google Calendar now, the first sub-target is to fix
the bug and make it runnable. (Target 1-1)

1.2 Design questionnaire of Honeydew and distribute a stable version of Honeydew to
users.

1.3 Get the user experience and data from users.

2. Add the functionality of time prediction to honeydew, rendering it a multi-functional
automatic meeting information extraction system.

2.1 Build two classifiers for time prediction, i.e., one for hour prediction and the other for
minute prediction.

2.2 To reduce complexity, we assume for now that meeting is only scheduled on one of
the 12 hours during the day and every quarter minute within an hour (0, 15, 30, 45).

2.3 Give a text span output by VIO that potentially contains the meeting time, apply the
classifiers and pick the most likely hour and minute.

4 Design and Analysis
4.1 Artifacts
Figure 1. Interaction diagram of Honeydew with Google calendar




Figure 2. Detailed interaction diagram of Honeydew with Google calendar
Figure 3. Interaction diagram of the core Honeydew system




4.2 Fix Bugs in Honeydew

Target 1-1 Honeydew Bug Process
Problem Definition:
There are 2 major problems in Honeydew:

1. The original workflow requires an existing quot;honeydewquot; calendar in GCal. However,
initially there is no such calendar except that users create it manually.

If there is no quot;honeydewquot; calendar, no event will be successfully added to GCal.

2. If there is a quot;honeydewquot; calendar, the new event is added on default calendar (means
“Username@gmail.com”), rather than quot;honeydewquot;.

Challenges to Debug:
Since google API functions are running in threads (CallBack function call), and the
running schedule is difficult to control in hand.

Moreover, once a thread of quot;Insertionquot; or quot;Updatequot; is over, the whole running process is
terminated without considering whether other thread is still running.

Aforementioned two issues make quot;honeydewquot; run unstable if creating quot;honeydewquot;
calendar and a meeting event is added simultaneously. That is, two calls on calendar in
quot;addMeeting()quot;.

Solution to Problem:
Before call addMeeting(), trying to check whether quot;honeydewquot; calendar exists.

1) If it is not, create a new one, and the process is terminated with a message telling user
that a new calendar quot;honeydewquot; is created, and he/she should do quot;Add to Google
Calendarquot; again.

2) If quot;honeydewquot; exists, the check thread without quot;Insertquot; function will allow adding
event working continue to work. That is what we want.




    Figure 4. Before running Honeydew, there is no event and “Honeydew” calendar.
Figure 5. After user chose one meeting request e-mail and clicked on “Honeydew” button,
               he/she can confirm the meeting information in form format.




  Figure 6. Once user clicked on the “Add to Google Calendar” button, the system will
  check whether “honeydew” calendar already exists. If it is not, create the calendar on
delegation of the user. Moreover, on the warning message, remind user to add meeting
                     again by clicking “Add to Google Calendar”.




                Figure 7. “honeydew” calendar creates successfully.
Figure 8. Once user clicked on the “Add to Google Calendar” button, the system will
check whether “honeydew” calendar already exists. If it is the case, Honeydew will add a
            new meeting event to user’s GCAL under “honeydew” calendar.




                             Figure 9. Successful Message
Figure 10. Successful Event Creation on GCal under “honeydew” Calendar

Potential Issues:
On the other hand, during debugging phase, we find several potential problems:

1. VIO does not do quite well, since most date expression can not be recognized correctly.

2. The form page can not keep consistent, which means

1) The first time loading might have an empty page. Sometimes, the button is not correct,
only haveing quot;Add Meetingquot;. However, reload can turn page to normal.

2) Once an meeting is added successfully to the GCAL, quot;click here to return to the
formsquot; will have a page only having quot;Add meetingquot; rather than quot;Add to Googlequot; and
quot;Add to Outlookquot;.

3. After August 2008, GCAL API is changed, since calendar is divided into quot;My
Calendarsquot; and quot;Other Calendarsquot;. Its effect on Honeydew is not stable, (sometimes
cause error but most do not).

4. Ideally the quot;Add to Google Calendarquot; button should work with IE, but it is not. Also,
the outlook plugin is not installing correctly.
5 Temporal Expression Anchorer
In addition to working on honeydew, a parallel branch in our project is to investigate a
baseline system named temporal expression anchorer (TEA), which is based on an LTI
Ph.D. thesis.

TEA understands temporal expressions in natural language via a constraint-based
calendar model and a compact representational language.

TEA runs in an interactive mode, and to facilitate batch mode testing, we added a
wrapper class to the original TEA implementation and changed the code to suit batch
mode running.

However, due to some unexpected segmentation fault, we did not have the complete
result of TEA on all the email data we have.




6 Email Corpus and Usage
To test our algorithms, we collected 492 meeting emails, 172 of which came from
previous evaluation on honeydew by Chaiyong. Moreover, we manually labeled partial
collection and skipped those hard or ambiguous cases.

Contenu connexe

Similaire à Report[1]

OT Scheduling through Google Calendar paper pesentation
OT Scheduling through Google Calendar paper pesentationOT Scheduling through Google Calendar paper pesentation
OT Scheduling through Google Calendar paper pesentation
Deepti Taiwade
 
Project NameCommunication PlanOverviewEffective and .docx
Project NameCommunication PlanOverviewEffective and .docxProject NameCommunication PlanOverviewEffective and .docx
Project NameCommunication PlanOverviewEffective and .docx
wkyra78
 
2021's Hot Tech Tools and Services for Financial Professionals
2021's Hot Tech Tools and Services for Financial Professionals2021's Hot Tech Tools and Services for Financial Professionals
2021's Hot Tech Tools and Services for Financial Professionals
Aggregage
 
Task tracking system
Task tracking systemTask tracking system
Task tracking system
Maulik Thaker
 
DescriptionThe Aires Corporation is highly desirous of implementi.docx
DescriptionThe Aires Corporation is highly desirous of implementi.docxDescriptionThe Aires Corporation is highly desirous of implementi.docx
DescriptionThe Aires Corporation is highly desirous of implementi.docx
carolinef5
 

Similaire à Report[1] (20)

OT Scheduling through Google Calendar paper pesentation
OT Scheduling through Google Calendar paper pesentationOT Scheduling through Google Calendar paper pesentation
OT Scheduling through Google Calendar paper pesentation
 
Project NameCommunication PlanOverviewEffective and .docx
Project NameCommunication PlanOverviewEffective and .docxProject NameCommunication PlanOverviewEffective and .docx
Project NameCommunication PlanOverviewEffective and .docx
 
Active Collab
Active CollabActive Collab
Active Collab
 
Timecamp Guide - How it Works?
Timecamp Guide - How it Works?Timecamp Guide - How it Works?
Timecamp Guide - How it Works?
 
Odoo project management_casestudy
Odoo project management_casestudyOdoo project management_casestudy
Odoo project management_casestudy
 
2021's Hot Tech Tools and Services for Financial Professionals
2021's Hot Tech Tools and Services for Financial Professionals2021's Hot Tech Tools and Services for Financial Professionals
2021's Hot Tech Tools and Services for Financial Professionals
 
Document(1)
Document(1)Document(1)
Document(1)
 
Homestead Weather workshop
Homestead Weather workshopHomestead Weather workshop
Homestead Weather workshop
 
Building the BI system and analytics capabilities at the company based on Rea...
Building the BI system and analytics capabilities at the company based on Rea...Building the BI system and analytics capabilities at the company based on Rea...
Building the BI system and analytics capabilities at the company based on Rea...
 
Demonstrating caf.doc
Demonstrating caf.docDemonstrating caf.doc
Demonstrating caf.doc
 
Google Data Studio for business
Google Data Studio for businessGoogle Data Studio for business
Google Data Studio for business
 
Empower individuals with autism through coding
Empower individuals with autism through codingEmpower individuals with autism through coding
Empower individuals with autism through coding
 
Latest proposal project info zakat
Latest proposal project info zakatLatest proposal project info zakat
Latest proposal project info zakat
 
Excel Time Tracking 4 Templates, Pros and Cons and Alternatives
Excel Time Tracking 4 Templates, Pros and Cons and AlternativesExcel Time Tracking 4 Templates, Pros and Cons and Alternatives
Excel Time Tracking 4 Templates, Pros and Cons and Alternatives
 
Task tracking system
Task tracking systemTask tracking system
Task tracking system
 
osd ncc education assingment l4dc
osd ncc education assingment l4dcosd ncc education assingment l4dc
osd ncc education assingment l4dc
 
FindNerd : A Social Network with Project And Task Management Features
FindNerd : A Social Network with Project And Task Management FeaturesFindNerd : A Social Network with Project And Task Management Features
FindNerd : A Social Network with Project And Task Management Features
 
Project Proposal Service Center Management software
Project Proposal  Service Center Management softwareProject Proposal  Service Center Management software
Project Proposal Service Center Management software
 
Sample report
Sample reportSample report
Sample report
 
DescriptionThe Aires Corporation is highly desirous of implementi.docx
DescriptionThe Aires Corporation is highly desirous of implementi.docxDescriptionThe Aires Corporation is highly desirous of implementi.docx
DescriptionThe Aires Corporation is highly desirous of implementi.docx
 

Plus de honeydewaccount (12)

Tp Result
Tp ResultTp Result
Tp Result
 
Tea Final
Tea FinalTea Final
Tea Final
 
Tp Result
Tp ResultTp Result
Tp Result
 
Tp Result
Tp ResultTp Result
Tp Result
 
3 30(1)
3 30(1)3 30(1)
3 30(1)
 
Use Case
Use CaseUse Case
Use Case
 
Honeydew Project Statement
Honeydew Project StatementHoneydew Project Statement
Honeydew Project Statement
 
02232009
0223200902232009
02232009
 
0216
02160216
0216
 
0216
02160216
0216
 
Honeydew0209
Honeydew0209Honeydew0209
Honeydew0209
 
Honeydew Progress
Honeydew ProgressHoneydew Progress
Honeydew Progress
 

Report[1]

  • 1. 11-792 Honeydew Project Mid-term Report Honeydew Team 1 An Introduction to Honeydew Today scheduling a meeting via email becomes popular. However, creating a meeting in a user’s calendar can be tedious. Honeydew is an intelligent agent, which uses machine- learning algorithms to extract all required information from a meeting email and then create suggestions for the users. The users can correct or verify the suggestions, and proceed to place the meeting in his calendar. The agent can dramatically reduce user’s workload of extracting all information from emails and putting them in his/her electronic calendar. The agent is also able to automatically improving its performance by learning from human feedback. Since our task in this class is significantly based on a large amount of work of many people who have devoted their time to the VIO and honeydew projects, our progress somewhat deviates from the normal track of software engineering practices. In particular, we spent a significant amount of time reading the code, in hope of figuring out the responsibilities and interactions between the classes. Our artifacts are partially based on our half-digested understanding of the code, and also, we start to add new functionalities to honeydew under such circumstances. 2 Honeydew Workflow Before diving into details, we briefly describe the working process of Honeydew in this section. 1) User clicks the honeydew button after receiving a e-mail about requesting a meeting 2) Honeydew gets the information from VIO and predicate the meeting date 3) Return parse result to the user and user manually confirm it 4.1) Using the submit to signal honeydew to revise system algorithm 4.2) User gives up no matter what the reason is VIO = form classification + form filtering suggestion + external reference resolutions VIO extracts actual related data from the e-mail message. The assumption is VIO will enter first 5 data fields, and the meeting date is the predicated value. That means, date expression like quot;next Wednesdayquot; is for quot;what dayquot;.
  • 2. Each field in the meeting form can be modified except for the Message Date. Detailed meeting information such as the meeting time and location is usually buried in the bulk of the meeting notification text, and how to accurately identify and extract such information is a challenge of this project. 3 Project Objectives In this project, we set two major goals: 1. Get the Honeydew operational for a community of users (such as students, TAs and professors in 11-792 SE), collect their e-mails about the meeting and analyze the accuracy of the system. At the same time, we can use a questionnaire to know user experience about the Honeydew and know about the drawbacks. Our analysis will be focused on Honeydew with Google Calendar. 1.1 Since Honeydew does not work on Google Calendar now, the first sub-target is to fix the bug and make it runnable. (Target 1-1) 1.2 Design questionnaire of Honeydew and distribute a stable version of Honeydew to users. 1.3 Get the user experience and data from users. 2. Add the functionality of time prediction to honeydew, rendering it a multi-functional automatic meeting information extraction system. 2.1 Build two classifiers for time prediction, i.e., one for hour prediction and the other for minute prediction. 2.2 To reduce complexity, we assume for now that meeting is only scheduled on one of the 12 hours during the day and every quarter minute within an hour (0, 15, 30, 45). 2.3 Give a text span output by VIO that potentially contains the meeting time, apply the classifiers and pick the most likely hour and minute. 4 Design and Analysis 4.1 Artifacts
  • 3. Figure 1. Interaction diagram of Honeydew with Google calendar Figure 2. Detailed interaction diagram of Honeydew with Google calendar
  • 4. Figure 3. Interaction diagram of the core Honeydew system 4.2 Fix Bugs in Honeydew Target 1-1 Honeydew Bug Process Problem Definition: There are 2 major problems in Honeydew: 1. The original workflow requires an existing quot;honeydewquot; calendar in GCal. However, initially there is no such calendar except that users create it manually. If there is no quot;honeydewquot; calendar, no event will be successfully added to GCal. 2. If there is a quot;honeydewquot; calendar, the new event is added on default calendar (means “Username@gmail.com”), rather than quot;honeydewquot;. Challenges to Debug:
  • 5. Since google API functions are running in threads (CallBack function call), and the running schedule is difficult to control in hand. Moreover, once a thread of quot;Insertionquot; or quot;Updatequot; is over, the whole running process is terminated without considering whether other thread is still running. Aforementioned two issues make quot;honeydewquot; run unstable if creating quot;honeydewquot; calendar and a meeting event is added simultaneously. That is, two calls on calendar in quot;addMeeting()quot;. Solution to Problem: Before call addMeeting(), trying to check whether quot;honeydewquot; calendar exists. 1) If it is not, create a new one, and the process is terminated with a message telling user that a new calendar quot;honeydewquot; is created, and he/she should do quot;Add to Google Calendarquot; again. 2) If quot;honeydewquot; exists, the check thread without quot;Insertquot; function will allow adding event working continue to work. That is what we want. Figure 4. Before running Honeydew, there is no event and “Honeydew” calendar.
  • 6. Figure 5. After user chose one meeting request e-mail and clicked on “Honeydew” button, he/she can confirm the meeting information in form format. Figure 6. Once user clicked on the “Add to Google Calendar” button, the system will check whether “honeydew” calendar already exists. If it is not, create the calendar on
  • 7. delegation of the user. Moreover, on the warning message, remind user to add meeting again by clicking “Add to Google Calendar”. Figure 7. “honeydew” calendar creates successfully.
  • 8. Figure 8. Once user clicked on the “Add to Google Calendar” button, the system will check whether “honeydew” calendar already exists. If it is the case, Honeydew will add a new meeting event to user’s GCAL under “honeydew” calendar. Figure 9. Successful Message
  • 9. Figure 10. Successful Event Creation on GCal under “honeydew” Calendar Potential Issues: On the other hand, during debugging phase, we find several potential problems: 1. VIO does not do quite well, since most date expression can not be recognized correctly. 2. The form page can not keep consistent, which means 1) The first time loading might have an empty page. Sometimes, the button is not correct, only haveing quot;Add Meetingquot;. However, reload can turn page to normal. 2) Once an meeting is added successfully to the GCAL, quot;click here to return to the formsquot; will have a page only having quot;Add meetingquot; rather than quot;Add to Googlequot; and quot;Add to Outlookquot;. 3. After August 2008, GCAL API is changed, since calendar is divided into quot;My Calendarsquot; and quot;Other Calendarsquot;. Its effect on Honeydew is not stable, (sometimes cause error but most do not). 4. Ideally the quot;Add to Google Calendarquot; button should work with IE, but it is not. Also, the outlook plugin is not installing correctly.
  • 10. 5 Temporal Expression Anchorer In addition to working on honeydew, a parallel branch in our project is to investigate a baseline system named temporal expression anchorer (TEA), which is based on an LTI Ph.D. thesis. TEA understands temporal expressions in natural language via a constraint-based calendar model and a compact representational language. TEA runs in an interactive mode, and to facilitate batch mode testing, we added a wrapper class to the original TEA implementation and changed the code to suit batch mode running. However, due to some unexpected segmentation fault, we did not have the complete result of TEA on all the email data we have. 6 Email Corpus and Usage To test our algorithms, we collected 492 meeting emails, 172 of which came from previous evaluation on honeydew by Chaiyong. Moreover, we manually labeled partial collection and skipped those hard or ambiguous cases.