1460748870-74c0bc26-6e1e-4fec-baba-62e284bea2a5

1. A method for controlling a portable media device, the method comprising, by an accessory communicatively coupled to the portable media device:
receiving a tag notification from the portable media device, the tag notification indicating that track identification information is available for a currently playing track of a broadcast being received by the portable media device;
receiving a tag request signal indicative of a user request to tag the track; and
in response to the tag request signal, transmitting a tagging command to the portable media device, wherein the tagging command instructs the portable media device to store the track identification information in a persistent storage medium in the portable media device.
2. The method of claim 1 further comprising:
in response to receiving the tag notification, alerting the user that the track identification information is available.
3. The method of claim 2 wherein:
alerting the user includes illuminating a tag control of a user input device; and
receiving the tag request signal includes detecting user operation of the tag control.
4. The method of claim 1 further comprising:
in response to transmitting the tagging command, receiving a tag success notification from the portable media device, wherein the tag success notification indicates that the track identification has been stored in the persistent storage medium in the portable media device.
5. An accessory comprising:
a media device interface configured to exchange commands from a plurality of commands with a portable media device;
a user interface configured to receive user input; and
a controller coupled to the media device interface and the user interface, the controller being configured to interpret the received user input as instructions for invoking a functionality of a broadcast receiver and to instruct the media device interface to send a corresponding command from the plurality of commands, the controller being further configured to process commands received from the portable media device by the media device interface,
wherein the plurality of commands includes:
a button status command sendable by the accessory, the button status command including a button status bitmask, wherein different bits of the button status bitmask correspond to different functions of the broadcast receiver, the bits of the button status bitmask including a tag bit corresponding to an instruction to store track identifying metadata; and
a notification command receivable by the accessory, the notification command including one of a plurality of event identifiers, wherein the plurality of event identifiers includes a first event identifier indicating detection of track identifying metadata for a current track and a second event identifier indicating successful storing of the track identifying metadata.
6. The accessory of claim 5 further comprising:
a speaker,
wherein the media device interface is further configured to receive an audio signal from the portable media device for delivery to the speaker.
7. The accessory of claim 5 wherein the user interface includes a tag control and wherein the controller is further configured such that, in response to user operation of the tag control, the controller instructs the media device interface to send the button status command with the tag bit active.
8. The accessory of claim 7 wherein the user interface is further configured such that the tag control is made operative in response to receiving a notification command including the first event identifier.
9. The accessory of claim 5 wherein the plurality of event identifiers further includes:
a third event identifier indicating that the portable media device has entered a broadcast-receiving mode of operation; and
a fourth event identifier indicating that the portable media device has exited the broadcast-receiving mode of operation.
10. The accessory of claim 5 wherein the plurality of commands further includes:
a broadcast-receiving mode entry command sendable by the accessory to instruct the portable media device to enter a broadcast-receiving mode of operation; and
a broadcast-receiving mode exit command sendable by the accessory to instruct the portable media device to exit the broadcast-receiving mode of operation.
11. A method for operating a portable media device, the method comprising:
receiving a track of a broadcast;
detecting track identifying metadata associated with the track;
in response to detecting the track-identifying metadata, sending a tag notification to an accessory communicably coupled to the portable media device, the tag notification indicating that the track identifying metadata is available;
receiving, from the accessory, an instruction to tag the track;
in response to the instruction, storing the track identifying metadata in a storage medium of the portable media device; and
sending a success notification to the accessory, the success notification indicating that the track identifying metadata has been stored in the storage medium.
12. The method of claim 11 further comprising:
detecting an end of the track; and
in response to detecting the end of the track, sending an end-track notification to the accessory.
13. The method of claim 12 wherein the end-track notification includes a notification that the track identifying metadata is no longer available.
14. The method of claim 11 wherein the portable media device is operable in a broadcast-receiving mode or another mode, the method comprising:
at a time when the portable media device is operating in the other mode, receiving, from the accessory, an instruction to enter the broadcast-receiving mode; and
switching to the broadcast-receiving mode in response to the instruction.
15. The method of claim 14 further comprising:
at a time when the portable media device is operating in the broadcast-receiving mode, receiving, from the accessory, an instruction to exit the broadcast-receiving mode; and
switching to the other mode in response to the instruction.
16. The method of claim 11 wherein the instruction to tag the track comprises a command and an associated bitmask, wherein different bits of the bitmask correspond to different functions of a broadcast receiver of the portable media device, and wherein the bits of the bitmask include a tag bit corresponding to the instruction to tag the track.
17. The method of claim 11 further comprising:
providing an audio signal corresponding to the track to the accessory.
18. A portable media device comprising:
a broadcast receiver configured to receive broadcast media content and to extract a content signal and track identifying metadata from the received broadcast media content;
an accessory interface configured to exchange commands from a plurality of commands with an accessory;
a storage device configured to store data; and
a processor coupled to the broadcast receiver and the accessory interface, the processor being configured to process the commands exchanged via the accessory interface,
wherein the plurality of commands includes a button status command receivable by the portable media device, the button status command including a button status bitmask, wherein the button status bitmask includes a tag bit indicative of an instruction to store at least a portion of the metadata extracted from the received broadcast media content,
and wherein the processor is further configured such that, in response to receiving the button status command with the tag bit set, the processor stores at least a portion of the track identifying metadata extracted by the broadcast receiver as a tag in the storage device.
19. The portable media device of claim 18 wherein the plurality of commands further includes:
a notification command sendable by the portable media device in response to detecting an event, the notification command including an event identifier corresponding to the detected event, wherein the detected events include detection of track identifying metadata for a current track and successful storing of the track identifying metadata; and
a registration command receivable from the accessory, the registration command indicating which of the plurality of event identifiers are to be sent to the accessory using the notification command.
20. The portable media device of claim 19 wherein the processor is further configured to execute an application program to control the broadcast receiver and wherein the plurality of commands further includes:
an enter broadcast mode command receivable by the portable media device, the enter broadcast mode command instructing the portable media device to launch the application program; and
an exit broadcast mode command receivable by the portable media device, the exit broadcast mode command instructing the portable media device to quit the application program.
21. The portable media device of claim 20 wherein the detected events further include launching the application program and quitting the application program.
22. The portable media device of claim 18 wherein the broadcast receiver includes a radio tuner.
23. The portable media device of claim 22 wherein the radio tuner is further configured to receive a radio broadcast on at least one of an FM radio band, an AM radio band, or a satellite radio band.
24. The portable media device of claim 18 wherein the broadcast receiver is configured to receive an Internet broadcast.
25. The portable media device of claim 18 wherein the broadcast receiver is configured to receive a television broadcast.
26. The portable media device of claim 18 wherein the accessory interface is further configured to transmit the content signal from the broadcast receiver to the accessory.
27. A method for controlling a portable media device having a broadcast receiver, the method comprising, by an accessory communicatively coupled to the portable media device:
receiving a first notification from the portable media device, the first notification indicating whether the portable media device is operating in a broadcast-receiving mode or a stored media playback mode;
sending a mode switching command to the portable media device in response to the notification, wherein the mode switching command instructs the portable media device to switch between the broadcast-receiving mode and the stored media playback mode; and
in response to the mode switching command, receiving a second notification from the portable media device, the second notification also indicating whether the portable media device is operating in the broadcast-receiving mode or the stored media playback mode, wherein the second notification reflects an effect of the mode switching command on the portable media device.
28. The method of claim 27 further comprising, by the accessory:
prior to receiving the first notification, sending a registration command to the portable media device, the registration command instructing the portable media device to register the accessory to receive a class of notifications associated with a broadcast-receiving application of the portable media device,
wherein the first notification and the second notification are included in the class of notifications associated with the broadcast-receiving application.
29. The method of claim 28 wherein the class of notifications associated with the broadcast-receiving application further includes a tag notification indicating that track-identifying metadata is available for a currently playing track of a broadcast, the method further comprising, by the accessory:
while the portable media device is operating in the broadcast-receiving mode and playing a track, receiving the tag notification from the portable media device;
in response to the tag notification, determining whether a user requests to tag the track; and
in the event that the user requests to tag the track, sending a tagging command to the portable media device, the tagging command instructing the portable media device to tag the track.

The claims below are in addition to those above.
All refrences to claim(s) which appear below refer to the numbering after this setence.

1. A method of training an initially trained classifier (ITC), the ITC having been generated using a set of verified documents associated with a set of class labels, the set of verified documents having been divided into a training set of documents and a test set of documents, and each class of the set of class labels associated with a class list, the training set of documents having been further divided into an integer number of verified document sets (INVDS), the method comprising:
automatically inputting a set of unverified documents into the ITC, the set of unverified documents divided into an integer number of unverified document sets (UNVDS);
automatically identifying a subset of documents from the UNVDS;
automatically generating a final set of training documents based on the subset of documents and the INVDS;
clustering at least one subset of documents from the INVDS and one subset of documents from the UNVDS using a flat clustering or hierarchical clustering technique; and
training the ITC using the final set of training documents.
2. The method of claim 1, further comprising:
executing a first loop code segment comprising a first loop construct written in a computer programming language, wherein the first loop code segment is executed at run time at least n times, wherein n is a value at run time of a first variable in a first loop termination condition;
executing a second loop code segment comprising a second loop construct written in the computer programming language, wherein the second loop code segment is executed at least p\xd7n times, wherein p is a value at run time of a second variable in a second loop termination condition; and
executing a third loop code segment comprising a third loop construct written in the computer programming language, wherein the third loop code segment is executed p\xd7n\xd7q times, wherein q is a value at run time of a third variable in a third loop termination condition.
3. The method of claim 2, further comprising, for each of the n times the first loop code is executed:
assigning a first portion of the INVDS to a first set of documents;
assigning a second portion of the INVDS to a second set of documents, the first portion different from the second portion;
training the ITC for each class associated with the set of class labels using documents in the first set of documents;
applying a plurality of classifiers to the documents in the second set of documents; and
computing a first set of F1 scores associated with documents in the second set of documents.
4. The method of claim 3, wherein the first set of documents and the second set of documents have no documents in common.
5. The method of claim 2, further comprising, for each of the p times the second loop code is executed:
applying at least one profile of a set of profiles to each document of the UNVDS, the at least one profile defining rule to be applied to each document of the UNVDS;
comparing at least one document of the UNVDS to all of the documents included in the first set of documents; and
deleting the at least one document from the UNVDS based on the comparison.
6. The method of claim 5, wherein the rule defines one of a class label
retention scheme, class label addition scheme, or combination thereof.
7. The method of claim 5, comprising applying a plurality of profiles included in the set of profiles to each document of the UNVDS in a decreasing order of profile strictness.
8. The method of claim 5, wherein the at least one document from the UNVDS is deleted if the at least one document from the UNVDS is similar to any of the documents included in the first set of documents.
9. The method of claim 5, wherein comparing the at least one document comprises computing a cosine similarity for the at least one document.
10. The method of claim 5, further comprising, for each of the p times the second loop code is executed:
forming a third set of documents by merging documents included in the first set of documents with documents not deleted from the UNVDS ; and
clustering the third set of documents using the flat clustering or the hierarchical clustering technique.
11. The method of claim 2, further comprising, for each of the q times the third loop code is executed:
applying the ITC to all documents in the UNVDS for each class defined in the set of class labels;
forming the subset of documents from the UNVDS, each document of the subset of documents having at least one class associated therewith;
training a second classifier using documents in the subset of documents and the first set of documents;
applying the second classifier to the second set of documents;
computing a second set of F1 scores associated with documents in the second set of documents;
comparing an F1 score associated with a class label from the second set of F1 scores to a corresponding F1 score associated with the class label from the first set of F1 scores;
updating a best score for the class label based on the comparison; and
adding documents from the subset of documents to a list of candidate documents based on the comparison.
12. The method of claim 11, wherein generating the final set of training documents comprises adding at least one document associated with the list of candidate documents to the training set of documents.
13. The method of claim 1, further comprising:
training a plurality of classifiers using the final set of training documents; and
applying the plurality of classifiers to the test set of documents.
14. A system comprising:
a data store including a set of verified documents and a set of unverified documents, the set of verified documents divided into a training set of documents and a test set of documents, the training set of documents divided into an integer number of verified document sets (INVDS), and the set of unverified documents divided into an integer number of unverified document sets (UNVDS);
a server including a processor and memory operatively coupled to the data store, the memory storing instructions that, in response to receiving a request for access to a service, cause the processor to:
automatically identify a subset of documents from the UNVDS in response to inputting the set of unverified documents into an initially trained classifier (ITC);
automatically generate a final set of training documents based on the subset of documents and the INVDS;

clustering at least one subset of documents from the INVDS and one subset of documents from the UNVDS using a flat clustering or hierarchical clustering technique; and
train the ITC using the final set of training documents.
15. The system of claim 14, wherein the memory stores instructions that, in response to receiving the request, cause the processor to:
execute a first loop code segment comprising a first loop construct, wherein the first loop code segment is executed at run time at least n times, wherein n is a value at run time of a first variable in a first loop termination condition;
execute a second loop code segment comprising a second loop construct, wherein the second loop code segment is executed at least p\xd7n times, wherein p is a value at run time of a second variable in a second loop termination condition; and
execute a third loop code segment comprising a third loop construct, wherein the third loop code segment is executed p\xd7n\xd7q times, wherein q is a value at run time of a third variable in a third loop termination condition.
16. The system of claim 15, wherein the memory stores instructions that, for each of the n times the processor executes the first loop, cause the processor to:
assign a first portion of the INVDS to a first set of documents;
assign a second portion of the INVDS to a second set of documents, the first portion different from the second portion;
train the ITC for each class associated with the set of class labels using documents in the first set of documents;
apply a plurality of classifiers to the documents in the second set of documents; and
compute a first set of F1 scores associated with documents in the second set of documents.
17. The system of claim 16, wherein the first set of documents and the second set of documents have no documents in common.
18. The system of claim 15, wherein the memory stores instructions that, for each of the p times the second loop code is executed, cause the processor to:
apply at least one profile of a set of profiles to each document of the UNVDS, the at least one profile defining a rule to be applied to each document of the UNVDS;
compare at least one document of the UNVDS to all of the documents included in the first set of documents; and
delete the at least one document from the UNVDS based on the comparison.
19. The system of claim 18, wherein the rule defines a class label retention scheme, class label addition scheme, or combination thereof.
20. The system of claim 18, wherein the memory stores instructions that cause the processor to apply a plurality of profiles included in the set of profiles to each document of the UNVDS in a decreasing order of profile strictness.
21. The system of claim 18, wherein the memory stores instructions that cause the processor to delete the at least one document from the UNVDS if the at least one document from the UNVDS is similar to any of the documents included in the first set of documents.
22. The system of claim 18, wherein the memory stores instructions that cause the processor to compute a cosine similarity for the at least one document to be used during the comparison.
23. The system of claim 18, wherein the memory stores instructions that, for each of the p times the second loop code is executed, cause the processor to:
form a third set of documents by merging documents included in the first set of documents with documents not deleted from the UNVDS ; and
cluster the third set of documents using the flat clustering or hierarchical clustering technique.
24. The system of claim 15, wherein the memory stores instructions that, for each of the q times the third loop code is executed, cause the processor to:
apply the ITC to all documents in the UNVDS for each class defined in the set of class labels;
form the subset of documents from the UNVDS, each document of the subset of documents having at least one class associated therewith;
train a second classifier using documents in the subset of documents and the first set of documents;
apply the second classifier to the second set of documents;
compute a second set of F1 scores associated with documents in the second set of documents;
compare an F1 score associated with a class label from the second set of F1 scores to a corresponding F1 score associated with the class label from the first set of F1 scores;
update a best score for the class label based on the comparison; and
add documents from the subset of documents to a list of candidate documents based on the comparison.
25. The system of claim 24, wherein the memory stores instructions that, in response to receiving the request, cause the processor to add at least one document associated with the list of candidate documents to the training set of documents to form the final set of training documents.
26. The system of claim 14, wherein the memory stores instructions that, in response to receiving the request, cause the processor to:
train a plurality of classifiers using the final set of training documents; and
apply the plurality of classifiers to the test set of documents.
27. An article comprising a non-transitory machine-readable medium storing machine-readable instructions that, when applied to the machine, cause the machine to:
automatically identify a subset of documents from an integer number of unverified document sets (UNVDS) in response to inputting the UNVDS into an initially trained classifier (ITC);
automatically generate a final set of training documents based on the subset of documents and the INVDS;
clustering at least one subset of documents from the INVDS and one subset of documents from the UNVDS using a flat clustering or hierarchical clustering technique; and
train the ITC using the final set of training documents.