IP Library Granted Patent US 11,556,598
Granted Patent B2
US 11,556,598 · App. 16/247,523 · Granted Jan 17, 2023

Extracting structured data from weblogs

Inventor: Natalie Glance (Pittsburgh, PA)
Assignee: BUZZMETRICS, LTD.
G06F16/951G06F16/245G06F16/28G06F16/80G06F16/958G06F40/205
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,556,598
App. No.
16/247,523
Granted
Jan 17, 2023
Kind
B2
Abstract

Methods and apparatus for extracting structured data from weblogs are disclosed. In some examples, the methods and apparatus include a web crawler to access a home page of a weblog, and identify a feed associated with the weblog. The methods and apparatus also include a feed finder to determine whether items in the feed contain sufficient content for feed-guided segmentation. The methods and apparatus also include a feed classifier to determine whether the items in the feed contain full content of the weblog. The methods and apparatus also include a wrapper to map data found in the feed into a representation of a weblog post, and screen scrape the weblog into the representation of the weblog post.

Claims (60)

1. An apparatus, comprising:

at least one memory;

instructions; and

processor circuitry to execute the instructions to:

access a home page of a weblog;

identify a feed associated with the weblog;

determine whether items in the feed contain sufficient content for feed-guided segmentation;

when the items in the feed contain sufficient content for feed-guided segmentation, determine whether the items in the feed contain full content of the weblog;

when the items in the feed contain full content of the weblog, map data found in the feed into a representation of a weblog post; and

when the items in the feed contains partial content, screen scrape the weblog into the representation of the weblog post.

2. The apparatus of claim 1 , wherein the processor circuitry is to execute the instructions to receive a feed URL for the weblog from a ping relayed by a ping server from which a weblog update is collected.

3. The apparatus of claim 1 , wherein the processor circuitry is to execute the instructions to, when the weblog is hosted by a weblog host that publishes a full content feed for the weblog, map a URL of the weblog to a feed URL.

4. The apparatus of claim 1 , wherein the processor circuitry is to execute the instructions to use RSS auto-discovery to identify a URL of the feed from metadata in HTML, for the home page of the weblog.

5. The apparatus of claim 1 , wherein the processor circuitry is to execute the instructions to:

extract a set of hyperlinks from a body of the weblog; and

filter the set of extracted hyperlinks to identify hyperlinks that belong to the feed for the weblog.

6. The apparatus of claim 5 , wherein the processor circuitry is to execute the instructions to use a set of heuristics to filter the set of extracted hyperlinks to identify the feed for the weblog from the extracted hyperlinks.

7. The apparatus of claim 5 , wherein the processor circuitry is to execute the instructions to identify the feed for the weblog based on at least one of a URL that allow readers to subscribe to the feed in an RSS reader, a URL matching a host name of the weblog and having a common feed suffix including at least one of atom.xml, .xml, .rss, or rdf, or a URL matching a domain name of the weblog and having a common feed prefix including at least one of xml or rss.

8. The apparatus of claim 1 , wherein the processor circuitry is to execute the instructions to determine the feed contains content for feed-guided segmentation when an item in the feed contains a date field and at least one of a content field or a description field.

9. The apparatus of claim 1 , wherein the processor circuitry is to execute the instructions to determine whether the feed contains full content or partial content of the weblog based on heuristics and features of content and description text in the feed.

10. The apparatus of claim 9 , wherein the features of the content and the description text include at least one of a presence or absence of HTML, tags, a percent of posts ending in ellipses, or a type of feed.

11. The apparatus of claim 1 , wherein the processor circuitry is to execute the instructions to, when the feed contains partial content of the weblog, create the representation of the weblog post based on data available from the feed.

12. The apparatus of claim 11 , wherein the representation includes at least one of a URL of the weblog, a date on which the weblog post was posted, partial content of the weblog post, a title of the weblog post, an author of the weblog post, or a permalink of the weblog post.

13. The apparatus of claim 12 , wherein the processor circuitry is to execute the instructions to search the home page of the weblog for content matching the representations.

14. The apparatus of claim 13 , wherein the processor circuitry is to execute the instructions to:

upon finding content on the home page of the weblog matching the representations, identify an enclosing node associated with the content matching the representations in extensible HyperText Markup Language (XHTML) for the home page of the weblog; and

extract text contained within the enclosing node to supplement the representation.

15. The apparatus of claim 12 , wherein the processor circuitry is to execute the instructions to exclude summarization artifacts and advertisements from the representations.

16. The apparatus of claim 1 , wherein the processor circuitry is to execute the instructions to extract dates from XHTML for a page of the weblog, and wherein when the feed contains insufficient content for feed-guided segmentation, the processor circuitry is to execute the instructions to:

sort the extracted dates into ordered lists, each ordered list corresponding to a relative XPath;

filter the ordered lists according to a set of heuristics to determine which of the lists correspond to entry dates of the weblog post;

segment the weblog into entries based on dates from the determined list as markers for the entries;

extract the weblog post from the weblog entries based on post title markers; and

identify a permalink and an author for the weblog post.

17. The apparatus of claim 16 , wherein, to filter the ordered lists based on the set of heuristics, the processor circuitry is to execute the instructions to:

extract lists whose dates all belong to the current year or the past year;

extract non-singleton date lists;

extract lists including dates that conform to a similar format;

extract lists including dates that decrease monotonically;

extract lists with most recent dates and without future data;

extract a list with a longest date string representation;

extract a list with a greatest number of dates; and

extract a first list.

18. The apparatus of claim 16 , wherein the processor circuitry is to execute the instructions to segment the weblog into entries based on a set of heuristics to identify an end of the weblog entries.

19. The apparatus of claim 18 , wherein the set of heuristics includes at least one of a start of a sidebar on the page of the weblog, a copyright notice on the page of the weblog, a form, or a comment.

20. The apparatus of claim 19 , wherein the processor circuitry is to execute the instructions to detect a node in a document object model whose XPath is analogous in structure to an XPath of a last node in a previous weblog entry.

21. The apparatus of claim 19 , wherein the processor circuitry is to execute the instructions to:

search nodes of an entry to identify a title node;

determine that titles of subsequent posts have a same relative XPath as the title node identified in searching the nodes of the entry; and

in response to failing to identify a title node, determine that the entry is a single post.

22. The apparatus of claim 21 , wherein the processor circuitry is to execute the instructions to identify the title node when a class attribute of the node is at least one of a title, a subtitle, or a blogpost.

23. The apparatus of claim 16 , wherein, to identify the permalink and author, the processor circuitry is to execute the instructions to identify hrefs in content of the weblog post that match.

24. The apparatus of claim 16 , wherein, to identify the permalink and author, the processor circuitry is to execute the instructions to identify patterns indicative of an author byline.

25. A computer readable storage device or storage disc comprising instructions that, when executed, cause a machine to at least:

access a home page of a weblog;

identify a feed associated with the weblog;

determine whether the feed contains sufficient content for feed-guided segmentation;

when the feed contains sufficient content for feed-guided segmentation, determine whether the feed contains full content or partial content of the weblog;

when the feed contains full content of the weblog, map data found in the feed into a representation of a weblog post; and

when feed contains partial content of the weblog, screen scrape the weblog into the representation of the weblog post.

Assignments (5)
RELEASE (REEL 053473 / FRAME 0001) Recorded May 11, 2023
From: CITIBANK, N.A.
To: A. C. NIELSEN COMPANY, LLC; EXELATE, INC.; GRACENOTE, INC.; GRACENOTE MEDIA SERVICES, LLC; THE NIELSEN COMPANY (US), LLC; NETRATINGS, LLC
Reel/Frame 063603/0001 →
RELEASE (REEL 054066 / FRAME 0064) Recorded May 11, 2023
From: CITIBANK, N.A.
To: A. C. NIELSEN COMPANY, LLC; EXELATE, INC.; GRACENOTE, INC.; GRACENOTE MEDIA SERVICES, LLC; THE NIELSEN COMPANY (US), LLC; NETRATINGS, LLC
Reel/Frame 063605/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE PATENTS LISTED ON SCHEDULE 1 RECORDED ON 6-9-2020 PREVIOUSLY RECORDED ON REEL 053473 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE SUPPLEMENTAL IP SECURITY AGREEMENT. Recorded Oct 7, 2020
From: A.C. NIELSEN (ARGENTINA) S.A.; A.C. NIELSEN COMPANY, LLC; ACN HOLDINGS INC.; ACNIELSEN CORPORATION; ACNIELSEN ERATINGS.COM; AFFINNOVA, INC.; ART HOLDING, L.L.C.; ATHENIAN LEASING CORPORATION; CZT/ACN TRADEMARKS, L.L.C.; EXELATE, INC.; GRACENOTE, INC.; GRACENOTE DIGITAL VENTURES, LLC; GRACENOTE MEDIA SERVICES, LLC; NETRATINGS, LLC; NIELSEN AUDIO, INC.; NIELSEN CONSUMER INSIGHTS, INC.; NIELSEN CONSUMER NEUROSCIENCE, INC.; NIELSEN FINANCE CO.; NIELSEN FINANCE LLC; NIELSEN INTERNATIONAL HOLDINGS, INC.; NIELSEN MOBILE, LLC; NMR INVESTING I, INC.; TCG DIVESTITURE INC.; TNC (US) HOLDINGS, INC.; THE NIELSEN COMPANY (US), LLC; VIZU CORPORATION; VNU MARKETING INFORMATION, INC.; NMR LICENSING ASSOCIATES, L.P.; NIELSEN HOLDING AND FINANCE B.V.; THE NIELSEN COMPANY B.V.; VNU INTERNATIONAL B.V.
To: CITIBANK, N.A
Reel/Frame 054066/0064 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 21, 2020
From: GLANCE, NATALIE
To: BUZZMETRICS, LTD.
Reel/Frame 053268/0851 →
SUPPLEMENTAL SECURITY AGREEMENT Recorded Jun 9, 2020
From: A. C. NIELSEN COMPANY, LLC; ACN HOLDINGS INC.; ACNIELSEN CORPORATION; ACNIELSEN ERATINGS.COM; AFFINNOVA, INC.; ART HOLDING, L.L.C.; ATHENIAN LEASING CORPORATION; CZT/ACN TRADEMARKS, L.L.C.; EXELATE, INC.; GRACENOTE, INC.; GRACENOTE DIGITAL VENTURES, LLC; GRACENOTE MEDIA SERVICES, LLC; NETRATINGS, LLC; NIELSEN AUDIO, INC.; NIELSEN CONSUMER INSIGHTS, INC.; NIELSEN CONSUMER NEUROSCIENCE, INC.; NIELSEN FINANCE CO.; NIELSEN FINANCE LLC; NIELSEN INTERNATIONAL HOLDINGS, INC.; NIELSEN MOBILE, LLC; NIELSEN UK FINANCE I, LLC; NMR INVESTING I, INC.; TCG DIVESTITURE INC.; TNC (US) HOLDINGS, INC.; THE NIELSEN COMPANY (US), LLC; VIZU CORPORATION; VNU MARKETING INFORMATION, INC.; NMR LICENSING ASSOCIATES, L.P.; NIELSEN HOLDING AND FINANCE B.V.; THE NIELSEN COMPANY B.V.; VNU INTERNATIONAL B.V.
To: CITIBANK, N.A.
Reel/Frame 053473/0001 →
Continuity (4)
Continuation 14881071 · Oct 12, 2015
Continuation 11454301 · Jun 16, 2006
Provisional Application 60691200 · Jun 16, 2005
Related Publication 20190147005A1 · May 16, 2019