# Notebook from openheritage/open-plaques-diversity
Path: notebooks/bad_actor_score_results.ipynb

<code>
import matplotlib.pyplot as plt _____no_output_____sorted_list = [('William Ewart Gladstone', 58), ('William Wilberforce', 55), ('Major General Charles George Gordon', 53), ('Frederick Douglass', 53), ('Elizabeth Barrett Browning', 50), ('Olaudah Equiano', 48), ('Anna Laetitia Barbauld', 48), ('King William IV of the United Kingdom', 48), ('Ira Aldridge', 45), ('Zachary Macaulay', 45), ('Simón Bolívar', 45), ('Benjamin Franklin', 43), ('Martin Van Buren', 43), ('Joseph Conrad', 43), ('John Marshall', 43), ('Marcus Garvey', 43), ('Charles Darwin', 40), ('Robert Milligan', 40), ('Phillis Wheatley', 40), ('Josephine Butler', 38), ('Sir Henry Morton Stanley GCB', 38), ('Mary Prince', 38), ('John Adams', 38), ('Robert Browning', 38), ('Sir Dr Thomas Stamford Raffles FRS LLD', 38), ('William Pitt', 38), ('John Stuart Mill', 38), ('William Murray, 1st Earl of Mansfield', 38), ('Sir Fowell Buxton MP 1st Baronet', 35), ('Richard Cobden', 35), ('Dr Sir Hans Sloane PRS 1st Baronet', 35), ('Sir Thomas Fowell Buxton 3rd Baronet GCMG', 35), ('Dido Elizabeth Belle', 35), ('Lady Nancy Astor CH', 33), ('Charles James Fox', 33), ('Mahatma Gandhi', 33), ('James Boswell', 33), ('William Penn', 33), ('Emmeline Pankhurst', 33), ('Rt Hon. Lord Sir Frederick Lugard PC DSO CB GCMG', 30), ('Mark Twain', 30), ('Edmund Burke', 30), ('Frederick Delius CH', 30), ('Sir Moses Montefiore 1st Baronet', 30), ('William Blake', 30), ('Sir Fisher Tench 1st Baronet', 30), ('Henry Venn', 30), ('Christopher Newman Hall', 30), ('James Sherman', 30), ('Cesar Picton', 30), ('David Livingstone', 30), ('Ignatius Sancho', 30), ('George Canning', 28), ('Viscount Sir Rt Hon. Henry John Temple KG PC GCB FRS', 28), ('Samuel Morse', 28), ('Admiral Robert Fitzroy RN', 28), ('Colin Cowdrey', 28), ('Oliver Cromwell MP', 28), ('George Padmore', 28), ('Philip Henry Gosse', 28), ('Dr Samuel Johnson', 28), ('Thomas Paine', 28), ('John Wesley MA', 28), ("Daniel O'Connell", 28), ('Charles Dickens', 28), ('Dr Bhimrao Ramji Amdedkar', 28), ('Samuel Coleridge-Taylor', 25), ('Josiah Wedgwood FRS', 25), ('Sir Francis Drake', 25), ('Jeremy Bentham', 25), ('Ezra Pound', 23), ('Jomo Kenyatta', 23), ('Neville Chamberlain FRS', 23), ('José Rizal', 23), ('José de San Martín', 23), ('John Fitzgerald Kennedy', 23), ('Mary Seacole', 23), ('Karl Marx', 23), ('James Abbott McNeill Whistler', 23), ('George Orwell', 23), ('Virginia Woolf', 23), ('Charles Spurgeon', 20), ('G. A. Henty', 20), ('Joaquim Nabuco', 20), ('Ruy Barbosa', 20), ('Sir Francis Baring 1st Baronet', 20), ('Mayflower', 20), ('Henry Nevinson', 20), ('Iolo Morganwg', 20), ('Maharajah Duleep Singh', 18), ('Louis Kossuth', 18), ('Sir Henry Vane', 18), ('Joseph Chamberlain MP', 18), ('Lady Anne Isabella Milbanke', 18), ('Percy Grainger', 18), ('Hilaire Belloc', 18), ('Amnesty International', 18), ('Mary Wollstonecraft', 18), ('Richard Burton', 18), ('King Charles I of England', 18), ('Cardinal John Henry Newman', 18), ('Sir Rt Hon. Earl Viscount Benjamin Disraeli KG PC', 18), ('Henry Williamson', 18), ('Vladimir Lenin', 18), ('Sir Lord Learie Constantine MBE', 18), ('Yes (band)', 18), ('Oscar Wilde', 18), ('Dame Florence Nightingale OM DStJ RRC', 18), ('King Charles II of England', 18), ('Dame Millicent Garrett Fawcett GBE', 15), ('Tobias Smollett', 15), ('Henry Hallam', 15), ('Nathaniel Hawthorne', 15), ('Sydney Smith', 15), ('Benjamin Waterhouse Hawkins', 15), ('Herman Melville', 15), ('Matthew Arnold', 15), ('Samuel Taylor Coleridge', 15), ('Charles Coward', 15), ('Patrick Hamilton', 15), ('Clarkson Stanfield RA', 15), ('Sir Thomas Lipton KCVO 1st Baronet', 15), ('Richard Norman Shaw', 15), ('Elizabeth Fry', 15), ('Quintin Hogg', 15), ('David Ricardo', 15), ('Jean Rhys', 15), ('Dame Agatha Christie DBE', 15), ('Museum Tavern', 15), ('Samuel Pepys PRS', 15), ('Stoke Newington Town Hall', 15), ('Prince Charles Maurice de Talleyrand-Périgord', 13), ('Béla Bartók', 13), ('William Etty RA', 13), ('Sir Arthur Pinero', 13), ('John Ruskin', 13), ('Kwame Nkrumah', 13), ('Thomas Gage', 13), ('Jawaharlal Nehru', 13), ('Washington Irving', 13), ('Thomas Daniell', 13), ('Alfred Russel Wallace OM FRS', 13), ('Captain Matthew Flinders RN', 13), ('Lady Jane Wilde', 13), ('Sir William Sterndale Bennett', 13), ('Howard Staunton', 13), ('John Harrison', 13), ('Sir William Orpen KBE', 13), ('Jean Sibelius', 13), ('Dr Thomas Hodgkin', 13), ('Enid Blyton', 13), ('Joseph Grimaldi', 13), ('Terry-Thomas', 13), ('Spencer Perceval', 13), ('The Sunday Times', 13), ('Vincent Van Gogh', 13), ('General Pasquale Paoli', 13), ('Dadabhai Naoroji', 13), ('Eadweard Muybridge', 13), ('King James II of England', 13), ('Hattie Jacques', 13), ('John Keats', 13), ('William Bligh', 13), ('Thomas Guy Esq', 13), ('James Joyce', 13), ('Thomas Hardy OM', 13), ('PC Keith Blakelock', 13), ('Percy Bysshe Shelley', 13), ('John Evelyn', 13), ("James Bronterre O'Brien", 13), ('Diana , Princess of Wales', 13), ('Edgar Allan Poe', 13), ('James Brown', 13), ('Louis-Napoléon Bonaparte', 13), ('Emily Davison', 13), ('George Michael', 13), ('Jimi Hendrix', 13), ('Leslie Hutchinson', 13), ('Walter Tull', 13), ('Marie Lloyd', 13), ('Dylan Thomas', 13), ('Vivien Leigh', 13), ('Diana Dors', 13), ('Donald Trump', 13), ('Sir Paul McCartney CH MBE', 13), ('Juan Pujol García', 13), ('General Julius Caesar', 13), ('Thomas De Quincey', 10), ('Sax Rohmer', 10), ('Fabian Society', 10), ('Sigmund Freud', 10), ('Hablot Knight Browne', 10), ('Alfred Waterhouse', 10), ('William Huskisson', 10), ('Sir H. Rider Haggard KBE', 10), ('Rt Hon. Lord Thomas Babington Macaulay PC', 10), ('Ian Fleming', 10), ('C. L. R. James', 10), ('Sir Harry Lauder', 10), ('James Elroy Flecker', 10), ('Sebastião José de Carvalho e Melo', 10), ('George Richmond', 10), ('Dame Marie Tempest DBE', 10), ('Joyce Grenfell', 10), ('Bert Hardy', 10), ('Irene Handl', 10), ('Dr Joseph Hertz CH', 10), ('Thomas Carlyle', 10), ('Amy Ashwood Garvey', 10), ('Leopold Stokowski', 10), ('Richard Ansdell RA', 10), ('University of London', 10), ('Horace Walpole', 10), ('William Dockwra', 10), ('Edmund Kean', 10), ('Sir Rt Hon. Earl Robert Walpole KG PC KB', 10), ('Sir William Wallace', 10), ('Sir William Empson', 10), ('John Rae', 10), ('Charles Babbage', 10), ('John Howard', 10), ('Vicomte François-René de Chateaubriand', 10), ('Penguin Books', 10), ('Thomas Campbell', 10), ('John Gurney Hoare', 10), ('Edith Nesbit', 10), ('Sir Karl Popper CH FRS FBA', 10), ('Sir Kingsley Amis', 10), ('Jack Butler Yeats', 10), ('Samuel Whitbread', 10), ('Marshalsea Prison', 10), ('Sir Walter Scott 1st Baronet', 10), ('Elizabeth Finn', 10), ('William Morris', 10), ('Sir Rear Admiral John Franklin FRGS KCH', 10), ('Admiral Sir John Duckworth RN GCB 1st Baronet', 10), ('Robert Barclay', 10), ('Julian Huxley FRS', 10), ('Sir Samuel Romilly', 10), ('Sir William Henry Perkin FRS', 10), ('Philip Larkin CH CBE FRSL', 10), ('James Mill', 10), ('Joseph Mallord William Turner RA', 10), ('Madge Gill', 10), ('Lord John', 10), ('Peter Cushing', 10), ('Alan Jay Lerner', 10), ('Vauxhall Motors', 10), ('Bill Richmond', 10), ('Tom Cribb', 10), ('Decimus Burton', 10), ('James Hadley Chase', 10), ('Cy Grant', 10), ('Bermondsey Abbey', 10), ('Christina Rossetti', 10), ('Rt Hon. Sir Earl Viscount Frederick Edwin Smith PC GCSI KC', 8), ('Sir Rt Hon. Earl Viscount Stanley Baldwin KG PC', 8), ('General James Wolfe', 8), ('Sylvia Plath', 8), ('Frances Burney', 8), ('Harry Relph', 8), ('Tamara Karsavina', 8), ('John McDouall Stuart', 8), ('James Anthony Froude', 8), ('Arthur Schopenhauer', 8), ('Sir Terence Rattigan CBE', 8), ('Karl Pearson', 8), ('Francis Bret Harte', 8), ('Lord Randolph Churchill', 8), ('Sir Rt Hon. Lord John Reith GCVO PC CB KT GBE', 8), ('Ford Madox Ford', 8), ('Sir Ernest Shackleton OBE CVO', 8), ('Sir Rt Hon. Marquess Robert Gascoyne-Cecil KG PC', 8), ('William Roberts', 8), ("Sean O'Casey", 8), ('Olive Schreiner', 8), ('Dr Edvard Benes LLD', 8), ('Earl Bertrand Russell OM FRS', 8), ('Sir Charles Villiers Stanford', 8), ('Dame Laura Knight DBE RA RWS', 8), ('Kathleen Ferrier CBE', 8), ('Kurt Schwitters', 8), ('George Bernard Shaw', 8), ('Dan Leno', 8), ('H. N. Brailsford', 8), ('Ralph Vaughan Williams OM', 8), ('Richard Brinsley Sheridan', 8), ('John Desmond Bernal', 8), ('Ford Madox Brown', 8), ('General John Burgoyne', 8), ('Evelyn Waugh', 8), ('Henry Fielding', 8), ('William Hazlitt', 8), ('Sir P. G. Wodehouse KBE', 8), ('Mohammed Ali Jinnah', 8), ('Sir Rt Hon. Earl Anthony Eden MC KG PC', 8), ('Dr W. Somerset Maugham CH', 8), ('Marylebone Cricket Club', 8), ('John Scott Russell', 8), ('Steve Marriott', 8), ('Sir John Vanbrugh', 8), ('Wendy Richard MBE', 8), ('Sir Walter Raleigh', 8), ('Sir Rt Hon. Earl Herbert Henry Asquith KG PC', 8), ('Sir Rt Hon. Earl Clement Attlee CH KG OM PC FRS', 8), ('General Benedict Arnold', 8), ('Gustav Holst', 8), ('Richard Wagner', 8), ('Wing Commander F. F. E. Yeo-Thomas GC', 8), ('Battle of Cable Street', 8), ('Metropolitan Railway', 8), ('George Alexander Macfarren', 8), ('Peter Tatchell', 8), ('John Pierpont Morgan', 8), ('Social Democratic Federation', 8), ('John Constable RA', 8), ('Frédéric Chopin', 8), ('Sir Rt Hon. Earl Lord Robert Dudley KG PC', 8), ('King Henry III of England', 8), ('Buddy Holly', 8), ('City of London School', 8), ('Thomas Chatterton', 8), ('Sir Rt Hon. Earl Field-Marshal John French KP GCVO OM GCB PC KCMG', 8), ('Wolfgang Amadeus Mozart', 8), ('Duke John of Gaunt', 8), ('Lord Benjamin Britten CH OM', 8), ('James Hudson Taylor', 8), ('Dr Joseph Priestley FRS LLD', 8), ('Loddiges Nursery', 8), ('Sir Alfred Hitchcock KBE', 8), ('Rosalind Franklin', 8), ('John Rogers', 8), ('Thomas Moore', 8), ('James Ramsay Macdonald', 8), ('Arthur Rimbaud', 8), ('Peter the Great', 8), ('William Butler Yeats', 8), ('Camille Pissarro', 8), ('Rt Hon. George Lansbury PC MP', 8), ('Sir St Thomas More', 8), ('Bing Crosby', 8), ('Rt Hon. Earl Viscount David Lloyd George OM PC', 8), ('Mervyn Peake', 8), ('Charles Pearson', 8), ('Vice-Admiral Sir Thomas Hardy GCB 1st Baronet', 8), ('Charles Lamb', 8), ('Lord George Gordon Byron', 8), ('King Alfred the Great', 8), ('Queen Caroline of Brunswick-Wolfenbüttel', 8), ('Rik Mayall', 8), ('Brian Epstein', 8), ('Thames Tunnel', 8), ('Raymond T. Chandler', 8), ('Edward Whymper', 8), ('Sir Isaac Newton PRS', 8), ('Georgette Heyer', 8), ('Osbert Lancaster', 8), ('Siege of Sidney Street', 8), ('Robert Aickman', 8), ('Pablo Picasso', 8), ('Samuel Beckett', 8), ('Elizabeth David', 8), ('Sir Lord Laurence Olivier OM', 8), ('Sir J. M. Barrie OM 1st Baronet', 8), ('Sir John Gielgud CH OM', 8), ('Sir Charlie Chaplin KBE', 8), ('David Bowie', 8), ('John Maynard Keynes', 8), ('Rudolf Nureyev', 8), ('Charles Fort', 8), ('Jessica Huntley', 8), ('John Passmore Edwards', 8), ("Richard D'Oyly Carte", 8), ('Violette Szabo GC', 8), ('General Charles De Gaulle', 8), ('King Henry VIII of England', 8), ('Ringo Starr', 8), ('George Harrison', 8), ('John Lennon', 8), ('Ludwig Wittgenstein', 8), ('William Boyd Earl of Kilmarnock', 8), ('Radio Luxembourg', 8), ('Operation Anthropoid', 8), ('King Edward VII of the United Kingdom', 8), ('Sir Rt Hon. Winston Churchill CH KG OM PC FRS TD RA', 8), ('Sir Rt Hon. Lord Harold Wilson OBE KG PC', 8), ('Hogarth Press', 5), ('George Borrow', 5), ('Dame Ivy Compton-Burnett DBE', 5), ('George Gissing', 5), ('Sir Henry Newbolt CH', 5), ('Bud Flanagan', 5), ('Charles Townley', 5), ('Evelyn Underhill', 5), ('Sir George Frederic Still KCVO', 5), ('Heinrich Heine', 5), ('Sir Admiral of the Fleet Earl John Jellicoe GCVO OM GCB SGM DL', 5), ('Sir Charles Barry', 5), ('Edmond Malone', 5), ('Anna Maria Garthwaite', 5), ('Natsume Soseki', 5), ('Melanie Klein', 5), ('Sir Mortimer Wheeler CH MC FRS FSA TD CIE FBA', 5), ('Harry Gordon Selfridge', 5), ('George Dance the Younger', 5), ('Dr John Hughlings Jackson', 5), ('Friedrich Engels', 5), ('Sir Ronald Ross KCB', 5), ('Sir Edwin Saunders', 5), ('Sir Richard Arkwright', 5), ('Frances Hodgson Burnett', 5), ('Major Walter Clopton Wingfield', 5), ('Sir Frederick Treves GCVO 1st Baronet', 5), ('Joseph Toynbee', 5), ('E. H. Shepard', 5), ('Sir Charles Lyell 1st Baronet', 5), ('John Charles Felix Rossi', 5), ('George Eliot', 5), ('Graham Hill', 5), ('Sir Hubert Parry 1st Baronet', 5), ('Sir Luke Fildes KCVO', 5), ('John Innes', 5), ('Katherine Mansfield', 5), ('Elizabeth Gaskell', 5), ('Sir Edwin Chadwick KCB', 5), ('Dr Robert Willan', 5), ('Edward Irving', 5), ('Sir Max Beerbohm', 5), ('Red House, Bexleyheath', 5), ('United States Embassy in London', 5), ('Collins Music Hall', 5), ('George Edmund Street', 5), ('Sir Norman Lockyer KCB FRS', 5), ('Sir William Rothenstein', 5), ('Sir John Ambrose Fleming FRS', 5), ('Sir Ronald Fisher', 5), ('Dennis Gabor CBE FRS', 5), ('Rabindranath Tagore', 5), ('Sir Lawrence Alma-Tadema OM RA', 5), ('D. H. Lawrence', 5), ('Maria Louise Ramé', 5), ('William Marsden', 5), ('Beatrice Webb', 5), ('George Romney', 5), ('Percy Wyndham Lewis', 5), ('Henry James OM', 5), ('Sir Norman Hartnell KCVO', 5), ('Lady Ottoline Morrell', 5), ('Voltaire', 5), ('Catherine Walters', 5), ('Octavia Hill', 5), ('Dusty Springfield OBE', 5), ('Arnold Bennett', 5), ('Bram Stoker', 5), ('Sir Roland Penrose', 5), ('Jacqui Smith', 5), ("The 2i's Coffee Bar", 5), ('Small Faces', 5), ('Don Arden', 5), ('Jimmy Winston', 5), ('Germaine Necker', 5), ('James Strachey', 5), ('Sir Herbert Beerbohm Tree', 5), ('Stanley Holloway', 5), ('David Nixon', 5), ('Anna Freud', 5), ('Arthur Hugh Clough', 5), ('Dodie Smith', 5), ('David Knopfler', 5), ('James Burbage', 5), ('Tony Ray-Jones', 5), ('Rt Hon. Lord Joseph Lister OM PC PRS', 5), ('Dr Ernest Jones', 5), ('Lord Bernard Delfont', 5), ('Robert Louis Stevenson', 5), ('Northumberland House', 5), ('Hector Hugh Munro', 5), ('Monty Python', 5), ('Col R. E. B. Crompton', 5), ('Paul de Lamerie', 5), ('Vera Brittain', 5), ('Dame Anna Neagle DBE', 5), ('Dr Grantly Dick-Read', 5), ('Jack Buchanan', 5), ('Sake Dean Mahomed', 5), ('Dr Innes Pearse', 5), ('Robin Gibb CBE', 5), ('Marc Bolan', 5), ('W. Heath Robinson', 5), ('Coventry Patmore', 5), ('Giovanni Antonio Canal', 5), ('Newgate', 5), ('Dr Flora Murray', 5), ('London Palladium', 5), ('Benny Hill', 5), ('Sir Archibald McIndoe CBE FRCS', 5), ('Charles Brooking', 5), ('Dositey Obradovich', 5), ('Sir Dr William Jackson Hooker DCL FRS LLD KH', 5), ('Charles Rolls', 5), ('Jack Cohen', 5), ('Sir Michael Sobell', 5), ('Sir Osbert Sitwell CH 5th Baronet', 5), ('Ernest Raymond', 5), ('Sir Elton John CBE', 5), ('Royal Horticultural Society', 5), ('John Thurloe', 5), ('Sir Hiram Maxim', 5), ('Edgar Wallace', 5), ('penicillin', 5), ('Sir Dr Alexander Fleming FRS FRSE FRCS', 5), ('Hilda Doolittle', 5), ('Captain Christopher Jones', 5), ('Sir Jacob Epstein KBE', 5), ('Sir Dr James MacKenzie FRS', 5), ('Edward Alleyn', 5), ('Frederick Salmon', 5), ('Beatrix Potter', 5), ('Herbert Howells CH CBE', 5), ('Roy Castle OBE', 5), ('John Inman', 5), ('Crosskeys Inn', 5), ('Sir Ebenezer Howard OBE', 5), ('London Penny Post', 5), ('Tubby Hayes', 5), ('David Gestetner', 5), ('BBC School Radio', 5), ('Edward Augustus Bowles', 5), ('Lionel Logue', 5), ('Sir Norman Wisdom OBE', 5), ('Sir William Russell Flint RA PRWS', 5), ('Walter Sickert', 5), ('Sir Joseph Swan FRS', 5), ('Curtain Theatre', 5), ('Isaac Watts', 5), ('Tower Bridge', 5), ('James Watt', 5), ('Sir Robert Wigram MP 1st Baronet', 5), ('Alexis Soyer', 5), ('Thomas Hearne', 5), ('John Spedan Lewis', 5), ('Andrew Marvell MP', 5), ('John McCormack', 5), ('The Rt Rev. Richard Challoner', 5), ('Jacqueline du Pré', 5), ('Sir Morell Mackenzie', 5), ('Andrew Carnegie', 5), ('Friday Hill House', 5), ('T. E. Lawrence', 5), ('Antonia White', 5), ('Arthur Henry Mee', 5), ('Lord John Copley', 5), ('Leigh Hunt', 5), ('Gilbert Jessop', 5), ('Harrow School', 5), ('Charles Robert Cockerell RA', 5), ("William Knox D'Arcy", 5), ('Harry Tate', 5), ('Marie Tussaud', 5), ('Henry Moore CH OM FBA', 5), ("Grim's Dyke", 5), ('Cowan Dobson', 5), ('John Le Mesurier', 5), ('Sir Geoffrey Wilkinson FRS', 5), ('Sir Thomas Brandon KG', 5), ('Sir Hugh Myddelton 1st Baronet', 5), ('Jack (Kid) Berg', 5), ('Sir Harold Ridley FRS', 5), ('Frederick Richard Simms', 5), ('George Frideric Handel', 5), ('London Bridge', 5), ('Sir Christopher Hatton KG', 5), ('Captain James Cook FRS RN', 5), ('Royal Hospital School, London', 5), ('Merton Park Studios', 5), ('Sir John Dankworth CBE', 5), ('Atkinsons of London', 5), ('David Letterman', 5), ('Dame Ida Mann DBE FRCS', 5), ('Eugenie de Montijo', 5), ('The Grapes, Limehouse', 5), ('Kenny Everett', 5), ('Lillie Langtry', 5), ('John Wisden', 5), ('The Clink', 5), ('Michael Powell', 5), ('James Watson', 5), ('Dr Nicholas Culpeper', 5), ('William Reeve', 5), ('Alice Zimmern', 5), ('Peggy Duff', 5), ('Bob Hope', 5), ('Constance Spry', 5), ('St Pancras railway station, London', 5), ('Lady Emmeline Pethick-Lawrence', 5), ('William Wilkie Collins', 5), ('Lord J. Arthur Rank', 5), ('Dame Nellie Melba GBE', 5), ('Linda McCartney', 5), ('A. J. P. Taylor', 5), ('Dame Gracie Fields DBE', 5), ('Eustace Short', 5), ('Eric Coates', 5), ('Sir Fabian Ware KBE KCVO', 5), ('Trinity House', 5), ('Frank Matcham', 5), ('Dame Dr Sheila Sherlock DBE FRS', 5), ('Robert Dyas Ltd', 5), ('Lionel Tertis', 5), ('Sir Victor Horsley FRS', 5), ('William Hogarth', 5), ('Maiden Lane Bridge', 5), ('Rev Dr Henry Dudley JP MA LLD 1st Baronet', 5), ('Archibald Hill CH OBE FRS', 5), ('Maria Dickin CBE', 5), ('Richard Briers', 5), ('George Frederic Watts OM RA', 5), ('The Who', 5), ('Bon Scott', 5), ('Jim Marshall', 5), ('Kirsty MacColl', 5), ('Edward Gibbon', 5), ('Tommy Cooper', 5), ('Eleanor Marx', 5), ('Bobby Moore OBE', 5), ('Ava Gardner', 5), ('Freddie Mercury', 5), ('William Nicholson MP', 5), ('Robert Owen', 5), ('William Shakespeare', 5), ('Hugh Cecil Lowther', 5), ('Alan Turing', 5), ('Charles Laughton', 5), ('Siegfried Sassoon', 5), ('Sir Frederick Ashton CH OM CBE', 5), ('Francis Bacon', 5), ('Royal Yacht Squadron', 5), ('Dorothy Richardson', 5), ('Edith Whetnall FRCS', 5), ('Paddington Bear', 5), ('Hammersmith Palais', 5), ('John Thelwall', 5), ('Warren Gold', 5), ('Dame Margaret Rutherford DBE', 5), ('Chris Squire', 5), ('Sir Bruce Forsyth CBE', 5), ('Asquith Xavier', 5), ('Henry Tonks FRCS', 5), ('Dame Christabel Pankhurst DBE', 5), ('Sir Joseph Bazalgette', 5), ('Institute of Cancer Research', 5), ('Spandau Ballet', 5), ('Bálint Mihály', 5), ('Dr Archibald Joseph Cronin', 5), ('Ada Lovelace', 5), ('Red Bull Playhouse', 5), ('Courage Brewery', 5), ('Sir Joseph Rotblat KCMG CBE FRS', 5), ('Arnold Toynbee', 5), ('Joe Meek', 5), ('Henry Doulton', 5), ('Elizabeth Siddal', 5), ('Nell Gwynne', 5), ('Henry Labouchere', 3), ('Beau Brummell', 3), ('Rt Hon. Sir Charles Dilke PC 2nd Baronet', 3), ('Aldous Huxley', 3), ('Vallabhbhai Patel', 3), ('Sir Syed Ahmed Khan KCSI', 3), ('Martina Bergman-Österberg', 3), ('August Wilhelm von Hofmann', 3), ('Alastair Sim', 3), ('Lord Robert Clive', 3), ('Peter Warlock', 3), ('Sir Arthur Stanley Eddington OM FRS', 3), ('Cato Street Conspiracy', 3), ('Edward Ardizzone', 3), ('Dame Edith Sitwell DBE', 3), ('Sir Malcolm Sargent', 3), ('Charles Ricketts', 3), ('Sir Frank Brangwyn', 3), ('Willy Clarkson', 3), ('Albert Chevalier', 3), ('Arthur Henderson', 3), ('Vinayak Damodar Savarkar', 3), ('King Haakon VII of Norway', 3), ('Sir Frederick Handley Page', 3), ('Sir Rt Hon. Earl Viscount Lord Edward Wood KG OM PC GCSI TD GCIE GCMG', 3), ('Dame Edith Evans DBE', 3), ('Italo Svevo', 3), ('Rudyard Kipling', 3), ('Lord Leslie Hore-Belisha', 3), ('Chaim Weizmann', 3), ('Wilfrid Scawen Blunt', 3), ('Eugen Sandow', 3), ('Arthur Waley CH CBE', 3), ('Susan Lawrence', 3), ('John Heartfield', 3), ('Rt Hon. Sir Lord William Thomson OM PC GCVO PRS FRS FRSE PRSE', 3), ('Sir Robert Peel 2nd Baronet', 3), ('Sir Edward Henry KCB GCVO JP CSI KPM 1st Baronet', 3), ('Joanna Baillie', 3), ('Henry Adams', 3), ('Herbert Chapman', 3), ('E. M. Forster CH OM', 3), ('David Bomberg', 3), ('Mary Kingsley', 3), ('Harold Laski', 3), ('Thomas Wakley', 3), ('Hector Berlioz', 3), ('Earl John Scott', 3), ('Sir Gerald du Maurier', 3), ('Anne Oldfield', 3), ('Admiral Rt Hon. Sir Earl Lord Viscount David Beatty RN OM PC GCB GCVO DSO', 3), ('Sir Earl Admiral Thomas Cochrane GCB', 3), ('Francis Place', 3), ('Swami Vivekananda', 3), ('Sir Adrian Boult CH', 3), ('Brass Crosby', 3), ('Sir Orlando Bridgeman SL 1st Baronet', 3), ('Hugh Gaitskell', 3), ('Sir Charles Santley', 3), ('George Peabody', 3), ('Captain Robert Falcon Scott CVO RN', 3), ('Jenny Lind', 3), ('King Charles X of France', 3), ('Robert Donat', 3), ('John Gilbert Winant OM', 3), ('Oskar Kokoschka', 3), ('Cetshwayo kaMpande', 3), ('Rio Ferdinand', 3), ('Nancy Mitford CBE', 3), ('Joseph Losey', 3), ('Sir Douglas Bader', 3), ('Anna Pavlova', 3), ('Thomas Gray', 3), ('Peter Cook', 3), ('Rosa Lewis', 3), ('Ho Chi Minh', 3), ('Jimmy Jewel', 3), ('Vivian Stanshall', 3), ('Sex Pistols', 3), ('Frederick Denison Maurice', 3), ('Herbert Wilcox', 3), ('Lady Dorothy Nevill', 3), ('Sir Arthur Conan Doyle KStJ DL', 3), ('Constance Winifred MacDonald', 3), ('Billy Fury', 3), ('George Grote', 3), ('Mrs. Patrick Campbell', 3), ('Sir Barnes Wallis CBE FRS', 3), ('Walter Crane', 3), ('Great Fire of London', 3), ('Henry Hyndman', 3), ('Edith Cavell', 3), ('Charles Gounod', 3), ('John Galsworthy OM', 3), ('Anne Hyde', 3), ('Hylda Baker', 3), ('Kenneth Horne', 3), ('Wilfred Brambell', 3), ('Sid James', 3), ('Richard Carlile', 3), ('Dean John Colet', 3), ('Hodge', 3), ('William Booth', 3), ('Thomas Hood', 3), ('King Edward VI of England', 3), ('Graham Greene CH OM', 3), ('Special Operations Executive', 3), ('Francis Crick OM FRS', 3), ('Gavin Turk', 3), ('Claudia Jones', 3), ('Sam Wanamaker', 3), ('Edward of Woodstock', 3), ('Marie Stopes', 3), ('Operation Overlord', 3), ('Rt Hon. Earl Lord Viscount Edward Hyde PC', 3), ('Charles Bradlaugh', 3), ('Ben Jonson', 3), ('Dr James Parkinson', 3), ('Maurice Wilkins CBE FRS', 3), ('Sir Noël Coward', 3), ('Sir Edward Elgar GCVO OM 1st Baronet', 3), ('Sir Rt Hon. Earl Frederick Stanley KG GCVO PC GCB', 3), ('William Morris Hughes', 3), ('General Władysław Sikorski', 3), ('Robert Hall', 3), ('Edward Gibbon Wakefield', 3), ('Francis Owen Salisbury', 3), ('R. H. Tawney', 3), ('Dr Lord David Pitt', 3), ('Dietrich Bonhoeffer', 3), ('John Travers Cornwell VC', 3), ('George Gascoigne', 3), ('Lawrence Oates', 3), ('H. G. Wells', 3), ('Joe Orton', 3), ('Ken Russell', 3), ('Sir Dr Arthur Harris OBE GCB AFC LLD DSM 1st Baronet', 3), ('Charles Walter Stansby Williams', 3), ('Charles Williams', 3), ('Rt Hon. Lord Manny Shinwell CH PC', 3), ('Harry Vardon', 3), ('Richard Taverner', 3), ('Queen Elizabeth I of England', 3), ('Sir Spike Milligan KBE Hon CBE', 3), ('Thomas Lawrence PRA', 3), ('Eric Sykes CBE', 3), ('Patrick Troughton', 3), ('W. S. Gilbert', 3), ('Johann Strauss', 3), ('Mary , Princess Royal', 3), ('Sir Henry Wood CH FRCM', 3), ('Kenneth Williams', 3), ('Giuseppe Mazzini', 3), ('Sir John Barbirolli CH', 3), ('Lady Emma Hamilton', 3), ('Stephen Lawrence', 3), ('Sir William Walton OM', 3), ('Sir Duke Edward Seymour KG', 3), ('Jennie Lee', 3), ('Aneurin Bevan', 3), ('General Francisco De Miranda', 3), ('Robert W. Paul', 3), ('John Singer Sargent RA', 3), ('Lord Patrick Blackett CH OM PRS', 3), ('Viscount Alfred Harmsworth', 3), ('Annie Besant', 3), ('Boris Johnson', 3), ('Sir Thomas Beecham CH 2nd Baronet', 3), ('Jon Pertwee', 3), ('Dr Elizabeth Garrett Anderson', 3), ('7 July 2005 London bombings', 3), ('Polish Navy', 3), ('Mary Macarthur', 3), ('Michael Faraday', 3), ('King George V of the United Kingdom', 3), ('Queen Mary of Teck', 3), ('Dr Boutros Boutros-Ghali PhD', 3), ('Battle of Lewisham', 3), ('Donald Pleasence', 3), ('John Cartwright', 3), ('P. L. Travers', 3), ('Kenneth MacMillan', 3), ('Michael Flanders', 3), ('Margaret Lockwood', 3), ('Sir Henry Cooper', 3), ('Edison Bell', 3), ('Special Demonstration Squad', 3), ('Charlotte Despard', 3), ('Earl Edward de Vere', 3), ('Sylvia Pankhurst', 3), ('Damien Hirst', 3), ('Dr Harold Moody', 3), ('Rt Hon. Thomas Cromwell PC', 3), ('St Edmund the Martyr', 3), ('Rabbi Leo Baeck', 3), ('Fusilier Lee James Rigby', 3), ('Lilian Lindsay', 3), ('Daniel Williams', 3), ('Dr Charles Holden FRIBA RDI D.Litt MRTPI', 3), ('The Ashes', 3), ('Australia national cricket team', 3), ('Dr W. G. Grace LRCP MRCS', 3), ('King Henry VI of England of France', 3), ('The Most Revd Cardinal Basil Hume OM OSB', 3), ('Sir Rt Hon. Field-Marshal Viscount Bernard Montgomery KG GCB PC DSO DL', 3), ('Barbara Castle', 3), ('Thomas Gainsborough', 0), ('Sir Charles James Freake 1st Baronet', 0), ('Arthur Onslow', 0), ('Gilbert Bayes', 0), ('Michael William Balfe', 0), ('David Ben-Gurion', 0), ('Joseph Whitaker', 0), ('John Burns', 0), ('Dorothea Lambert Chambers', 0), ('Leonard Huxley', 0), ('Alan Blumlein', 0), ('Dame Sybil Thorndike CH DBE', 0), ('Charles Manby', 0), ('Sir Rt Hon. Field-Marshal Earl Frederick Roberts VC KP KG OM PC GCB KStJ GCSI GCIE VD', 0), ('Sir Henry Hallett Dale OM PRS FRS GBE', 0), ('Alfred Bestall', 0), ('William Strang', 0), ('John Francis Sartorius', 0), ('William Powell Frith', 0), ('John Ireland', 0), ('William Wymark Jacobs', 0), ('Emily Davies', 0), ('Lao She', 0), ('Sir George Gilbert Scott', 0), ('Dorothy L. Sayers', 0), ('Earl John Russell', 0), ('Sir Arthur Bliss CH KCVO', 0), ('George Bentham', 0), ('Clementia Taylor', 0), ('Peter Taylor', 0), ('Lady Mary Coke', 0), ('Earl Richard Grosvenor', 0), ('Tom Sayers', 0), ('Ethel Gordon Fenwick', 0), ('Sir Frank Dyson KBE', 0), ('John Tallis', 0), ('Sir Marquess George Robinson KG', 0), ('Dr Richard Bright', 0), ('Rt Hon. Sir Viscount Richard Haldane OM PC FRS FSA KC FBA KT', 0), ('Thomas Stothard', 0), ('William Stanley', 0), ('Albert Mansbridge CH', 0), ('Sir Leslie Stephen KCB', 0), ('Emile Zola', 0), ('Richard Tauber', 0), ('Douglas Macmillan', 0), ('E. F. Benson', 0), ('James Smithson FRS MA', 0), ('Walter De La Mare CH OM', 0), ('Sir Jack Hobbs', 0), ('Joseph Hansom', 0), ('Theodore Watts-Dunton', 0), ('Sir Alan Herbert CH', 0), ('Will Hay', 0), ('Sir John Simon KCB FRS FRCS', 0), ('Vivian Forbes', 0), ('Charles Shannon', 0), ('Frederick Cayley Robinson', 0), ('James Pryde', 0), ('Glyn Philpot', 0), ('Inner London Education Authority', 0), ('Sir Admiral of the Fleet Lord John Fisher GCVO OM GCB', 0), ('Thomas Henry Wyatt', 0), ('Baron Friedrich Von Hügel', 0), ('Philip Wilson Steer OM', 0), ('Roger Fenton', 0), ('James Glaisher', 0), ('Sydney Copeman KStJ FRS FRCP', 0), ('Ernest Bevin', 0), ('Sir Rt Hon. Earl Lord Viscount Archibald Primrose KG PC KT', 0), ('Lt Gen Augustus Pitt Rivers', 0), ('Cardinal Henry Edward Manning', 0), ('The Linnean Society', 0), ('David Don', 0), ('Robert Brown', 0), ('Sir Joseph Banks GCB PRS 1st Baronet', 0), ('Barbara Hammond', 0), ('John Lawrence Hammond', 0), ('Emma Cons', 0), ('Sol Plaatje', 0), ('Earl Robert Harley', 0), ('Sir Hamo Thornycroft', 0), ('Scotland Yard', 0), ('Major General William Roy', 0), ('Dr Joseph Rogers', 0), ('Louis MacNeice', 0), ('Charles Voysey', 0), ('Edward Thomas', 0), ('Paul Robeson', 0), ('Sir Edwin Arnold KCIE', 0), ('Fred Knee', 0), ('J. B. Priestley OM', 0), ('Luke Howard', 0), ('Sir John Salmond CMG GCB CVO DSO&BAR', 0), ('Sir Patrick Manson GCMG', 0), ('Andrew Bonar Law', 0), ('Sir Alan Cobham KBE', 0), ('Frank Bridge', 0), ('Walter Bagehot', 0), ('Paul Nash', 0), ('Dame Myra Hess DBE', 0), ('Joseph Gandy', 0), ('John William Waterhouse', 0), ('William Daniell', 0), ('H. M. Bateman', 0), ('Randolph Caldecott', 0), ('Constant Lambert', 0), ('Norman Douglas', 0), ('Thomas Arne', 0), ('John Flaxman', 0), ('Charles Vickery Drysdale', 0), ('Sir Giles Gilbert Scott OM RA', 0), ('Sir Alexander Korda', 0), ('Sir Martin Frobisher', 0), ('William Borough', 0), ('Stephen Borough', 0), ('Sir Hugh Willoughby', 0), ('Isaac Rosenberg', 0), ('Henry Pelham FRS', 0), ('George Devine', 0), ('Earl Edward Smith-Stanley', 0), ('Sir Harold Gillies', 0), ('Dr William Hunter FRS', 0), ('Sir Ralph Richardson', 0), ('Count Edward Raczyñski', 0), ('Joseph Nollekens', 0), ('Sir George Alexander', 0), ('Henry Willis', 0), ('Sir Stanley Unwin KCMG', 0), ('Stevie Smith', 0), ('Sir Harry Ricardo', 0), ('Sri Aurobindo', 0), ('Frank Pick', 0), ('Sir Flinders Petrie', 0), ('William Lethaby', 0), ('Andreas Kalvos', 0), ('Frederick John Horniman', 0), ('George Basevi', 0), ('Benjamin Haydon', 0), ('Rt Hon. Viscount Robert Cecil CH PC QC', 0), ('Henry Fuseli', 0), ('Hugh Price Hughes', 0), ('Thomas Earnshaw', 0), ('Lilian Baylis CH', 0), ('Sir Stewart Duke-Elder GCVO', 0), ('Michael Ventris', 0), ('Sir James Clark Ross', 0), ('Dame Lucie Rie DBE', 0), ('Richard Dadd', 0), ('Alfred Stevens', 0), ('Colen Campbell', 0), ('Sir Rt Hon. Viscount Field-Marshal Garnet Wolseley KP OM GCB PC GCMG VD', 0), ('Dame Clara Butt DBE', 0), ('Sir Jeffry Wyatville', 0), ('Eleanor Rathbone', 0), ('Wilson Carlile CH', 0), ('Sir Francis Galton', 0), ('Sir Edwin Lutyens OM FRIBA RA KCIE', 0), ('John Loughborough Pearson', 0), ('Jack Beresford', 0), ('Sir Charles Vyner Brooke GCMG', 0), ('Albert Henry Stanley', 0), ('Sir Henry Wellcome FRS', 0), ('Princess Seraphine Astafieva', 0), ('Sir Thomas Sopwith', 0), ('Sir Rt Hon. Marquess William Petty KG PC', 0), ('Frank Dobson', 0), ('John Middleton Murry', 0), ('C. S. Forester', 0), ('Lord Frederic Leighton PRA', 0), ('Thomas Sheraton', 0), ('Mary Hughes', 0), ('Cecil Sharp', 0), ('William Butterfield', 0), ('Walter Pater', 0), ('Dr Margery Blackie', 0), ('William Henry Barlow FRS FRSE MIMechE FICE', 0), ('Sir Robert Smirke', 0), ('Arthur Lucan', 0), ('R. Travers Herford', 0), ('Charles Sargeant Jagger', 0), ('Christopher Whall', 0), ('Field-Marshal Viscount Edmund Allenby', 0), ('John Beard', 0), ('William Ewart MP', 0), ('Ram Mohun Roy', 0), ('Sir Robert Peel 1st Baronet', 0), ('Stéphane Mallarmé', 0), ('Sir Gerald Kelly', 0), ('Harold Abrahams', 0), ('Sir Arnold Bax KCVO', 0), ('Sir Rt Hon. Earl Viscount Lord Evelyn Baring CB OM KCB GCB PC GCMG CIE KCSI', 0), ('Henry Havelock Ellis', 0), ('Guy Gibson', 0), ('Will Thorne MP', 0), ('Samuel Phelps', 0), ('Lady Violet Bonham Carter', 0), ('John Walter', 0), ('Aubrey Beardsley', 0), ('R. M. Ballantyne', 0), ('Thomas Chippendale, the younger', 0), ('Thomas Chippendale', 0), ('Augustus Siebe', 0), ("General Bernardo O'Higgins", 0), ('Howard Carter', 0), ('Frances Buss', 0), ('Rev Philip Clayton CH MC', 0), ('Ben Nicholson OM', 0), ('Jane Loudon', 0), ('John Loudon', 0), ('Sir Henry Campbell-Bannerman GCB MP', 0), ('Sir Charles Eastlake', 0), ('George Leybourne', 0), ('Gus Elen', 0), ('John Tweed', 0), ('Ruth First', 0), ('Joe Slovo', 0), ('Sir Anthony Hope', 0), ('Thomas Rowlandson', 0), ('Dante Gabriel Rossetti', 0), ('Charles Eamer Kempe', 0), ('Charles Booth', 0), ('Andrés Bello', 0), ('Thomas Young', 0), ('first regular high definition television service', 0), ('Sir Frank Short', 0), ('Earl Charles Stanhope', 0), ('Samuel Smiles', 0), ('George Du Maurier', 0), ('Rt Hon. Lord John Lubbock PC FRS DL', 0), ('Cecil Day Lewis', 0), ('Charles Kingsley', 0), ('Silver Studio', 0), ('David Edward Hughes', 0), ('Evelyn De Morgan', 0), ('William De Morgan', 0), ('Toynbee Hall', 0), ('Dr James Joseph Mallon CH', 0), ('Lord Philip Noel-Baker', 0), ('Thomas Henry Huxley PRS', 0), ('Sir Julius Benedict', 0), ('Sir Jonathan Hutchinson FRS', 0), ('Johann Zoffany', 0), ('Edward Adrian Wilson', 0), ('Harold Knight RA', 0), ('Sir Nigel Playfair', 0), ('Daniel Defoe', 0), ('Sir William Reid Dick KCVO', 0), ('Bruce Bairnsfather', 0), ('Charles Bridgeman', 0), ('Sir Earl Field-Marshal Viscount Lord Horatio Kitchener KP KG OM GCB KStJ GCSI GCMG GCIE', 0), ('Sir Charles Wheatstone FRS', 0), ('Andrew Lang', 0), ('Bert Ambrose', 0), ('John Adam', 0), ('William Caslon', 0), ('Israel Zangwill', 0), ('William Smith MP', 0), ('Pte. Frederick Hitch VC', 0), ('Sir John Lavery RA', 0), ('Sir Emery Walker', 0), ('Anthony Salvin', 0), ('Dr Nicholas Barbon', 0), ('Essex Street', 0), ('Sir Capt Geoffrey De Havilland OM CBE FRAeS AFC RDI', 0), ('Muzio Clementi', 0), ('Sir Benjamin Thompson FRS', 0), ('Sir Eyre Massey Shaw KCB', 0), ('Caroline Chisholm', 0), ('William Edward Hartpole Lecky OM', 0), ('Marie Taglioni', 0), ('Robert Stephenson', 0), ('George Frampton', 0), ('Sir Harold Nicolson CMG KCVO', 0), ('Lady Vita Sackville-West CH', 0), ('Francis Turner Palgrave', 0), ('John Lindley', 0), ('Dame Ninette de Valois CH OM DBE', 0), ('Lucien Pissarro', 0), ('Enid Bagnold', 0), ('Sir Richard Westmacott', 0), ('John Francis Bentley', 0), ('Victor Weisz', 0), ('Rose Macaulay', 0), ('Winifred Holtby', 0), ('Rt Hon. Marquess Rufus Isaacs PC', 0), ('Sir Bernard Spilsbury', 0), ('Austin Dobson', 0), ('Robert Bevan', 0), ('Boris Karloff', 0), ('Goldsworthy Lowes Dickinson', 0), ('Ugo Foscolo', 0), ('Admiral Sir Rear Admiral Francis Beaufort RN KCB FRS FRGS FRAS MRIA', 0), ('Samuel Wesley', 0), ('Marcus Stone', 0), ('Dennis Brain', 0), ('George Frederick Bodley', 0), ('David Devant', 0), ('Charles Macklin', 0), ('Grinling Gibbons', 0), ('Sir John Fielding', 0), ('Doves Press', 0), ('Thomas James Cobden-Sanderson', 0), ('Theodor Fontane', 0), ('Hertha Ayrton', 0), ('Robert Fortune', 0), ('The Promenade Concerts', 0), ("Queen's Hall, London", 0), ('William Johnson Cory', 0), ('Phil May', 0), ('Sir Edward Burne-Jones ARA 1st Baronet', 0), ('Geological Society of London', 0), ('Lady Diana Beauclerk', 0), ('Topham Beauclerk', 0), ('Augustus Charles Pugin', 0), ('Sir Johnston Forbes-Robertson', 0), ('Edwin Waterhouse', 0), ('first postmarks in the world', 0), ('François Guizot', 0), ('George Godwin', 0), ('Emil Otto Hoppe', 0), ('Dr John William Polidori', 0), ('Jessie Matthews OBE', 0), ('Sir Richard Stafford Cripps CH FRS', 0), ('John Stephen', 0), ('John Logie Baird FRSE', 0), ('George Moore', 0), ('Edvard Grieg', 0), ('Sir Michael Caine', 0), ('The Rose Theatre, London', 0), ('Richard Carr Gomm', 0), ('Sir George Livesey', 0), ('Borough Market', 0), ('John Harvard', 0), ('Marianne Jean-Baptiste', 0), ('Una Marson', 0), ('Anne Shelton', 0), ('Edgar Kail', 0), ('Phyllis Pearsall', 0), ('Edward Turner', 0), ('Dr Oliver Goldsmith', 0), ('Bobby Abel', 0), ('Keith Moon', 0), ('Sir Francis Pettit Smith', 0), ('Canon Samuel Barnett', 0), ('Slobodan Yovanovitch', 0), ('Léon Goossens', 0), ('Sidonie Goossens', 0), ('Eugene Aynsley Goossens', 0), ('Eugène Goossens', 0), ('Arthur Penty', 0), ('Sir Rt Hon. Viscount Edward Grey KG PC 3rd Baronet', 0), ('Dame Celia Johnson DBE', 0), ('Benny Green', 0), ('Earl Richard Savage', 0), ('W. T. Stead', 0), ('Wynkyn de Worde', 0), ('Gregory de Rokesley', 0), ('Sir Carol Reed', 0), ('Robert Graves', 0), ('Thomas Lord', 0), ('Elizabeth Jesser Reid', 0), ('Harold Bride', 0), ('Heddle Nash', 0), ('Richmal Crompton', 0), ('Sir Rt Hon. Lord John Buchan CH GCVO PC GCMG', 0), ('Lee Miller', 0), ('Johnston (typeface)', 0), ('Fred Russell', 0), ('Donald McGill', 0), ('Daniel Mendoza', 0), ('Henry Stephens', 0), ('William Curtis', 0), ('William Terriss', 0), ('Admiral Rt Hon. Earl Edward Russell RN PC', 0), ('Sir Alec Guinness CH CBE', 0), ("Queen's Theatre, Long Acre", 0), ('Dame Ellen Terry DBE', 0), ('Sir Charles Wyndham', 0), ('Ian McLagan', 0), ('Kenney Jones', 0), ('Ronnie Lane', 0), ('Frederick Winsor', 0), ('Sir Francis Chichester KBE', 0), ('Alix Strachey', 0), ('Clive Bell', 0), ('Henry Cavendish', 0), ('Bernie Winters', 0), ('John Adams-Acton', 0), ('Margery Allingham', 0), ('Edward R. Murrow', 0), ('Stephen Pearce', 0), ('Thomas Woolner RA', 0), ('Walter Greaves', 0), ('Dr Lord Leslie Haden-Guest MC', 0), ('Tyburn Tree', 0), ('Bernard Ashley', 0), ('Laura Ashley', 0), ('Mary Shelley', 0), ('William Henry Hunt', 0), ('John Skinner Prout', 0), ('Sir Laurence Gomme', 0), ('George Grossmith', 0), ('Sir Robert Mayer CH KCVO', 0), ('Pick Withers', 0), ('John Illsley', 0), ('Mark Knopfler', 0), ('Dire Straits', 0), ('Arthur Rose', 0), ('William Willett', 0), ('Rt Hon. Lord Henry Brougham PC FRS QC', 0), ('Lord Sydney Stern', 0), ('Carlo Marochetti RA', 0), ('Charles Rennie Mackintosh', 0), ('Margaret Macdonald', 0), ('Imperial Society of Knights Bachelor', 0), ('Elizabeth Percy , Duchess of Northumberland', 0), ('Aldersgate', 0), ('David Thompson', 0), ('Denis Johnson', 0), ('Sir William Nicholson', 0), ('Thomas J. Barratt', 0), ('E. V. Knox', 0), ('Sir Walter Besant', 0), ('Thomas Park FSA', 0), ('Nicholas Saunders', 0), ('Sir George Cayley 6th Baronet', 0), ('The Club', 0), ('Dr Joseph Thomas Clover', 0), ('Dr James Yearsley', 0), ('Sir Alfred Ayer', 0), ('Henry Hall', 0), ('Szmul Zygielbojm', 0), ('Sir Paolo Tosti KCVO', 0), ('Keith Clifford Hall FSMC FAAO DCLP', 0), ('Peter Pears', 0), ('John Peake Knight', 0), ('Dr Arthur Fleischmann KCSG FRBS', 0), ('Rt Hon. Lord Sidney Webb OM PC', 0), ('James Purdey the Younger', 0), ('Terence Donovan', 0), ('Juan Pablo Viscardo Y Guzman', 0), ('William Lilly', 0), ('Arthur Haygarth', 0), ('Edward Dannreuther', 0), ('Pioneer Health Centre', 0), ('Sherlock Holmes', 0), ('Reginald Ruggles Gates', 0), ('Maurice Gibb', 0), ('Barry Gibb', 0), ('Max Wall', 0), ('Samuel Palmer', 0), ('Caroline DeCamp Benn', 0), ('William Lyttle', 0), ('G. P. O. Film Unit', 0), ('Adelaide Tambo', 0), ('Oliver Tambo', 0), ('Priscilla Wakefield', 0), ('George Shadbolt', 0), ('Charlotte Riddell', 0), ('John Alfred Prestwich', 0), ('Walter James MacQueen-Pope', 0), ('John Eliot Howard', 0), ('George James Symons FRS', 0), ('T. S. Eliot OM', 0), ('Rev Thomas Bowman Stephenson', 0), ('Action for Children', 0), ('Philip Jones CBE', 0), ('Gerald Finzi', 0), ("Christ's Hospital", 0), ('John Templeton', 0), ('Kelso Cochrane', 0), ('Dr Louisa Garrett Anderson CBE', 0), ('David Garrick', 0), ('Walter Hines Page', 0), ('Abigail Adams', 0), ('Penny Post', 0), ('Eleonora Duse', 0), ('C. J. Phipps', 0), ('Bernard Sunley', 0), ('Sir Lennox Berkeley', 0), ("Baynard's Castle", 0), ('Sir Cecil Beaton', 0), ('Henry Gray', 0), ('London Pavilion', 0), ('Joan Sims', 0), ('Alfonso Lopez-Pumarejo', 0), ('Field-Marshal Viscount John Vereker VC', 0), ('Edwina Mountbatten', 0), ('Sir Admiral of the Fleet Earl Louis Mountbatten KG GCVO OM GCB DSO KStJ GCSI GCIE', 0), ('Dame Marie Rambert DBE', 0), ('Mercury Theatre, Notting Hill Gate', 0), ('Ashley Dukes', 0), ('Thomas Denman', 0), ('The Hon. George Denman', 0), ('Ernest Dowson', 0), ('Leland Lewis Duncan', 0), ('Richard Jefferies', 0), ('Jim Connell', 0), ('Roy Porter FBA', 0), ('Robert Edward Ryder VC', 0), ('Leslie Paul', 0), ('Aldgate', 0), ('Sir Thomas Gresham', 0), ('headquarters of the London Salvage Corps', 0), ('John Milton', 0), ('Sir Henry Segrave', 0), ('George Baxter', 0), ('Rick Parfitt OBE', 0), ('Status Quo', 0), ('Squeeze', 0), ('Bill Brandt', 0), ('Sir Dr Joseph Dalton Hooker OM CB DCL PRS GCSI FRS LLD', 0), ('Charles Morgan', 0), ('James McBey', 0), ("Queen's Theatre", 0), ('W. G. R. Sprague', 0), ('Hatchards', 0), ('John Hatchard', 0), ('Maxim Gun', 0), ('Robert Boothby', 0), ('Sir Charles Wheeler CBE PRA KCVO', 0), ('George Cruikshank', 0), ('Alienation Office', 0), ('George Graham FRS', 0), ('Lord Alfred Tennyson', 0), ('Richard Todd', 0), ('Frankie Howerd OBE', 0), ('Sir Lord Robert Baden-Powell OM KCB GCVO KStJ GCMG', 0), ('Jonas Hanway', 0), ('Dr Thomas Linacre', 0), ('Sir Christopher Ingold', 0), ('The Daily Courant', 0), ('Edward Henry Corbould', 0), ('George Myers', 0), ('Time & Talents', 0), ('Rachel McMillan', 0), ('Margaret McMillan CH CBE', 0), ('William Kinnear', 0), ('Fortune Theatre', 0), ('Thomas Britton', 0), ('Sir Marquess William Compton KG', 0), ('Eduard Suess', 0), ('Lord Fenner Brockway', 0), ('Blackfriars railway station', 0), ('Yvonne Green', 0), ('Fred Dell', 0), ('Jessica Tandy', 0), ('Savoy', 0), ('Simon de Montfort', 0), ('Peter II', 0), ('Sir William Ramsay KCB FRS FRSE', 0), ('Croydon Airport', 0), ('Ben Warriss', 0), ('Jimmy Edwards DFC', 0), ('Dick Emery', 0), ('Terry Scott', 0), ('Arthur Askey CBE', 0), ('Charlie Chester MBE', 0), ('Tommy Handley', 0), ('Alfred Marks OBE', 0), ('Richard Murdoch', 0), ('Ted Ray', 0), ('Roy Kinnear', 0), ('Arthur Lowe', 0), ('Eric Morecambe OBE', 0), ('Derek Nimmo', 0), ('Ernie Wise OBE', 0), ('Harry Worth', 0), ('Harry H. Corbett', 0), ('Paul Eddington CBE', 0), ('Marti Caine', 0), ('Willie Rushton', 0), ('Alma Cogan', 0), ('Frankie Vaughan CBE DL', 0), ('Bill Owen MBE', 0), ('Kenneth Wolstenholme DFC & Bar', 0), ('Mickie Most', 0), ('David Lodge', 0), ('Dame Thora Hird DBE', 0), ('Alan Freeman MBE', 0), ('John Lyall', 0), ('Charlie Drake', 0), ('City of London School for Girls', 0), ('Cripplegate', 0), ('George Villiers', 0), ('Giltspur Street Compter', 0), ('Hugh Herland', 0), ('James Smith', 0), ('John Ogilby', 0), ('Ludgate', 0), ('Royal College of Physicians', 0), ('St. Leonard’s Church, London', 0), ("St Paul's School, London", 0), ("Stationers' Company's School", 0), ('Sir Rt Hon. Marquess George Curzon KG PC GCSI GCIE FBA', 0), ('Tom Baker', 0), ('Sir Hugh Lane', 0), ('John Bright MP', 0), ('Sir Basil Spence OBE OM RA', 0), ('John Thomas Smith', 0), ('Sir Rt Hon. Earl Robert Cecil KG PC', 0), ('Mary Lamb', 0), ('Robert Uvedale', 0), ('Charles Cowden Clarke', 0), ('Gerald Massey', 0), ('Elsynge Hall, London', 0), ('Sir John Weld', 0), ('Gladys Aylward', 0), ('John Masefield OM', 0), ('J. R. Ackerley', 0), ('Gavin Ewart FRSL', 0), ('Rt Hon. Lord Hugh Jenkins PC', 0), ('The Goon Show', 0), ('Rudy Narayan', 0), ('Amy Johnson', 0), ('Nicolas Mahut', 0), ('John Isner', 0), ('Centre Court', 0), ('Prince Edward', 0), ('Henry Austen', 0), ('Jane Austen', 0), ('Charles Coborn', 0), ('Robert Bloomfield', 0), ('Sir Nikolaus Pevsner', 0), ('Isaac D’Israeli', 0), ("Rhaune Laslett-O'Brien", 0), ('Sam King MBE', 0), ('Purley railway station', 0), ('Coulsdon railway station', 0), ('George Odger', 0), ('King John II of France', 0), ('Charles W. Bowerman', 0), ('Anton Bruckner', 0), ('Jabez Bunting', 0), ('Edgar Fay QC', 0), ('Sir Sam Fay', 0), ('Marylebone railway station, London', 0), ('Edith Margaret Garrud', 0), ('The Keskidee', 0), ('Jim Veal', 0), ('Alsy MacDonald', 0), ('Robert McComb', 0), ('Jill Birt', 0), ('Martyn P. Casey', 0), ('David McComb', 0), ('The Triffids', 0), ('Thomas Tompion FRS', 0), ('Peacock Inn, Islington', 0), ('Victor McLaglen', 0), ('James Hunt', 0), ('WPC Yvonne Fletcher', 0), ('Professional Photographers Association', 0), ('Admiral Viscount Sir Horatio Nelson RN KB', 0), ('Marie Kendall', 0), ('Edward Goodrich Acheson', 0), ('Sir James Dewar', 0), ('George Groves', 0), ('Joshua Watson', 0), ('Philip Webb', 0), ('Thomas Braidwood', 0), ('Rt Hon. Lord Sir Fulke Greville PC KB', 0), ('Sir Leonard Woolley', 0), ('Mel Calman', 0), ('James Brooks', 0), ('Vincent Harris OBE RA', 0), ('Parkesine', 0), ('Hoxton Hall', 0), ('Celia Fiennes', 0), ('Nelson Lee', 0), ('Ivor Novello', 0), ('Sir Michael Balcon', 0), ('Sir Edmund Gosse', 0), ('A. A. Milne', 0), ('Charles Cruft', 0), ('Kate Greenaway', 0), ('Sir Henry Cole CB', 0), ('Alex Stokes', 0), ('Herbert Wilson FRSE', 0), ('Raymond Gosling', 0), ('Sir Edward Victor Appleton FRS GBE', 0), ('St Thomas a Becket', 0), ('Jubilee Line Extension', 0), ('Sir Dr Stanley Hooker PhD FRS FRAeS MIMechE', 0), ('Sir Sydney Camm CBE FRAeS', 0), ('John Hunter FRS', 0), ('Geoffrey Chaucer', 0), ('Cardinal Nicholas Wiseman', 0), ('Rodney Smith MBE', 0), ('John Newbery', 0), ("Thomas Power O'Connor", 0), ('John Philpot', 0), ('John Bradford', 0), ('Viscount Charles Wakefield', 0), ('Sir George Williams', 0), ('Sir Roger Bannister CH CBE', 0), ('James Barry', 0), ('Constantine Cavafy', 0), ('Milos Crnjanski', 0), ('Canon Percy Dearmer', 0), ('John Robert Godley', 0), ('Alice Meynell', 0), ('Sir Rt Hon. Viscount Alfred Milner KG PC GCB GCMG', 0), ('Queen Wilhelmina of the Netherlands', 0), ('Carl Maria von Weber', 0), ('Ancient Order of Druids', 0), ('Charles Ives', 0), ('Sir Allen Lane CH', 0), ('Franz Liszt', 0), ('Artists Rifles', 0), ('Henry Wyndham Phillips', 0), ('John Christopher Smith', 0), ('Sir Michael Costa', 0), ('Charles McCall', 0), ('Arthur Sullivan VC', 0), ('Texas Legation', 0), ('Anthony Green', 0), ('James Hanley', 0), ('Humphrey Jennings', 0), ('John Lewis', 0), ('Tomáš Garrigue Masaryk', 0), ('Tobias Matthay', 0), ('Piet Mondrian', 0), ('Alfred Reynolds', 0), ('Barbara Pym', 0), ('Thomas Chalmers', 0), ('John Berridge', 0), ('Thomas Scott', 0), ('Rowland Hill', 0), ('Lindsay Anderson', 0), ('Wilson Barrett', 0), ('Philip De Laszlo', 0), ('Martin Shaw', 0), ('Dr Nahum Sokolow', 0), ('Donald Ogden Stewart', 0), ('Francis William Topham', 0), ('Haydn Wood', 0), ('Earl Lord Richard Weston', 0), ('Hubert Le Sueur', 0), ('Earl Philip Stanhope', 0), ('Sir Rt Hon. Earl Philip Stanhope KG PC', 0), ('Sir Rowland Hill KCB', 0), ('Spa Road railway station', 0), ('Elisabeth Welch', 0), ('Henry Mayhew', 0), ('Paul Verlaine', 0), ('Unity Theatre, London', 0), ('John Arnold', 0), ('Frederick Bremer', 0), ('Margaret Damer Dawson', 0), ('Morgan Phillips', 0), ('Thomas Wall', 0), ('John Thorpe', 0), ('Lilian Harvey', 0), ('James Hilton', 0), ('James Clerk Maxwell', 0), ('Kenneth Grahame', 0), ('Edward Lloyd', 0), ('George Monoux', 0), ('Eliezer Cogan', 0), ('West Ham Union Workhouse', 0), ('Lewis Vulliamy', 0), ('Lt Col Vincent Crane Richmond OBE FRAeS', 0), ('Sir George Edwards OM CBE FRS FREng DL', 0), ('Robert Boothby-Heathcote', 0), ('Fanny Craddock', 0), ('Richard Hodgson FRAS FRMS', 0), ('Arthur Bottomley', 0), ('Norman Parkinson CBE', 0), ('Miss Rose', 0), ('Sir Philip Ben Greet', 0), ('Arthur Keith', 0), ('Ernest George', 0), ('Edward Linley Sambourne', 0), ('Humphry Repton', 0), ('Ernest George Trobridge', 0), ('John Newlands', 0), ('Dr Hannah Billig MBE GM', 0), ('Frederick George Creed', 0), ('Cyril Davies', 0), ('Alexis Korner', 0), ('Lord Edmund Sheffield', 0), ('Joe Jenkins', 0), ('Cicely Mary Barker', 0), ('George MacDonald', 0), ('Peter Blake', 0), ('Peter Greenaway', 0), ('Ian Dury', 0), ('Kenneth More CBE', 0), ('Dr Augustus John OM RA LLD', 0), ('Sir Ove Arup', 0), ('Arthur Hughes', 0), ('John Butler Yeats', 0), ('Alexander Parkes', 0), ('Gilbert Keith Chesterton', 0), ('David Cox', 0), ('Spencer Gore', 0), ('Ron Greenwood', 0), ('Algernon Charles Swinburne', 0), ('Richardson Evans', 0), ('Alfred Turner RA', 0), ('Denis Pritt QC', 0), ('Alexander Cruden MA', 0), ('Dr Morris Kaufman PhD', 0), ('Isabella Beeton', 0), ('Tommy Trinder', 0), ('William Frederick Yeames RA', 0), ('C. B. Fry', 0), ('Bill Willis', 0), ('Frank Swift', 0), ('Dorothea Jordan', 0), ('Gerald Horsley', 0), ('Arthur Haynes', 0), ('Eddie Ingram', 0), ('Charles Hamilton', 0), ('Edouard Espinosa', 0), ('William Hale White', 0), ('William Cattley', 0), ('George Meredith OM', 0), ('John Williams', 0), ('Patrick MacDowell', 0), ('Rt Hon. Lord Herbert Morrison CH PC', 0), ('Kathleen Godfree', 0), ('Captain Frederick Marryat RN', 0), ('Sir Alfred Munnings PRA KCVO', 0), ('William McMillan', 0), ('Anton Dolin', 0), ('Sir William Crookes OM PRS', 0), ('Nicolas Medtner', 0), ('Colin Chapman', 0), ("Distressed Gentlefolk's Aid Association", 0), ('Peter Collinson', 0), ('Sir James Murray', 0), ('PC Nina Mackay', 0), ('Thomas Hancock', 0), ('Hope Playhouse, London', 0), ('Richard Titmuss', 0), ('PS Christopher Head', 0), ('Sir Derek Barton FRS FRSE', 0), ('Duke of Suffolk', 0), ('Duke Charles Brandon', 0), ('John Horne Tooke', 0), ('King Richard III of England', 0), ('Benjamin Waugh', 0), ('Mark Lemon', 0), ('Anthony Benn', 0), ('Charles Robert Ashbee', 0), ('Edward Lear', 0), ('PC Phillip Walters', 0), ('Marie Studholme', 0), ('Hetty King', 0), ('Thomas Smith Tait', 0), ('Frederick Goodall', 0), ('John Norden', 0), ('PC Laurence Brown', 0), ('Sgt Alan King', 0), ('Biggin Hill Royal Air Force station', 0), ('Surrey Iron Railway', 0), ('Rt Hon. Sir Lord John Lawrence PC GCB GCSI', 0), ('Sir Henry Irving', 0), ('David Hartley', 0), ('St Richard Reynolds', 0), ('William Tierney Clark', 0), ('BBC Media Village', 0), ('Elizabeth Bowen', 0), ('Duke Hugh Grosvenor KC', 0), ('Christopher Pinchbeck', 0), ('Gas Light & Coke Company', 0), ('A. E. Housman', 0), ('Fred Perry', 0), ('Peter Quaife', 0), ('Jet Harris MBE', 0), ('Michael Bentine CBE', 0), ('Sir Harry Secombe CBE', 0), ('Peter Sellers', 0), ('Ladbroke Grove Train Disaster', 0), ('Edward Westermarck', 0), ('Graham Chapman', 0), ('George Emlyn Williams CBE', 0), ('Susanna Annesley', 0), ('Rt Hon. Sir Lord Field-Marshal FitzRoy Somerset PC GCB', 0), ('Joseph René Bellot', 0), ('James Bradley', 0), ('James Monger', 0), ('Josiah Child', 0), ('Henry Thrale', 0), ('Mark Gertler', 0), ('Sir Rt Hon. Earl James Stanhope MC KG PC DSO', 0), ('National Maritime Museum', 0), ('General Julius Jacob von Haynau', 0), ('Sir Earl Lord Henry Jermyn KG', 0), ('Michael Portillo', 0), ('Felix Mendelssohn', 0), ('Dennis Emmanuel Brown CD', 0), ('Harry Beck', 0), ('Ken Colyer', 0), ('Marks & Co.', 0), ('Helene Hanff', 0), ('Sarah Bernhardt', 0), ('Georgie Fame', 0), ('Free Russian Press', 0), ('Alexander Herzen', 0), ('Dame Henrietta Barnett DBE', 0), ('Rotten Row', 0), ('King William III of England', 0), ('Sir Simon Milton', 0), ('The Mousetrap', 0), ('Hospital for Tropical Diseases', 0), ('James Sadler', 0), ('Paul Hartnoll', 0), ('James Edmondson', 0), ('James Adam', 0), ('Robert Adam', 0), ("Mothers' Union", 0), ('Lord Max Aitken', 0), ('Thomas Flamank', 0), ('Richard Trevithick', 0), ('Thomas Adolphus Trollope', 0), ('Charles Wesley', 0), ('Al Bowlly', 0), ('Terence MacSwiney MP', 0), ('Dave Shepherd', 0), ('Emeric Pressburger', 0), ('Cecil Hepworth', 0), ('James Williamson', 0), ('Leslie Howard', 0), ('William Vincent', 0), ('Tony Hancock', 0), ('James Scott', 0), ('Lewis Cubitt', 0), ('Harry Bell Measures', 0), ('Lancaster Gate', 0), ('Michael Collins', 0), ('George Seferis', 0), ('John Richard Green', 0), ('Gerard Manley Hopkins', 0), ('Sun Yat-Sen', 0), ('Richard Whittington', 0), ('John Dryden', 0), ('Isambard Kingdom Brunel', 0), ('Lena Kennedy', 0), ('Raymond Unwin', 0), ('Leslie Palmer MBE', 0), ('Russell Henderson', 0), ('Tommy Steele OBE', 0), ('Rt Hon. Lord Frederick Pethick-Lawrence PC', 0), ('Geoffrey Jellicoe', 0), ('Duke Prince Richard', 0), ('Sir Francis Ronalds FRS', 0), ('Sir Marc Isambard Brunel', 0), ('Dr Cedric Keith Simpson CBE FRCP MA LLD', 0), ('Guglielmo Marconi', 0), ('Mitch Mitchell', 0), ('The Jimi Hendrix Experience', 0), ('Noel Redding', 0), ('Dame Maud McCarthy GBE', 0), ('Sir Air Chief Marshal Lord Hugh Dowding CMG GCVO GCB', 0), ('Sir John Summerson CH CBE', 0), ('V. K. Krishna Menon', 0), ('Sir Ambrose Heal', 0), ('Oswald Short', 0), ('Richard Dimbleby CBE', 0), ('Scipio Africanus Mussabini', 0), ('John Archer', 0), ('W. H. Hudson', 0), ('Roger Fry', 0), ('Sir Charles Algernon Parsons OM KCB FRS', 0), ('Sir Joshua Reynolds FRS RA FRSA', 0), ('Guild & Church Ward of St Botolph-without-Aldersgate, London', 0), ('Gavin Maxwell', 0), ('Herbert Gribble', 0), ('Arthur Rackham', 0), ('Dr Alfred Salter', 0), ('Richard Greene', 0), ('David Storey', 0), ('Ben Aaronovitch', 0), ('Amelia Edwards', 0), ('Joseph Haydn', 0), ('Fred Karno', 0), ('John White', 0), ('Jonathan Downey', 0), ('William Smith', 0), ('Sir Captain Mansfield Cumming KCMG CB RN', 0), ('Francis Barraud', 0), ('Sir David Low', 0), ('Dorothy Dene', 0), ('Marion Dorn', 0), ('Edward McKnight Kauffer', 0), ('Sir William Heerlein Lindley KBE', 0), ('William Lindley', 0), ('Jerome K. Jerome', 0), ('Mary Anne Clarke', 0), ('Lupino Lane', 0), ('Sir Peter Medawar CH OM CBE FRS', 0), ('Wells Coates', 0), ('Richard Church', 0), ('Peter Piaktow', 0), ('Meredith White Townsend', 0), ('Charles Mackerras CH CBE AC', 0), ('Ebenezer Cobb Morley JP', 0), ('The Football Association', 0), ('Nick Moore', 0), ('Sir Joseph Paxton', 0), ('Dame Dr Louisa Aldrich-Blake DBE Ch.M.', 0), ('Sir Ernst Gombrich OM CBE FBA', 0), ('Duke Thomas Howard', 0), ('Sir Thomas Wyatt', 0), ('Earl Henry Howard', 0), ('Rt Hon. Marquess Henry Courtenay PC', 0), ('Sir Bradley Wiggins CBE', 0), ('Sir John Betjeman CBE', 0), ('Queen Elizabeth II of the United Kingdom', 0), ('Bernie Grant', 0), ('Dr Arthur Wint', 0), ('Kenny Clare', 0), ('Wat Tyler', 0), ('Stephen Spender', 0), ('Cyril Connolly CBE', 0), ('John Maria Gatti', 0), ('Rollo Armstrong', 0), ('Sister Bliss', 0), ('Maxi Jazz', 0), ('Faithless', 0), ('Birt Acres', 0), ('Oscar Deutsch', 0), ('Chariots of Fire', 0), ('James Henry Greathead', 0), ('Sir Clive Sinclair', 0), ('Sidney Bechet', 0), ('James Thomson', 0), ('Walthamstow Marshes', 0), ('Roe I Triplane', 0), ('Royal Society of Arts', 0), ('William Shipley', 0), ('Hillingdon House', 0), ('Mary Fletcher', 0), ('Edward Buxton', 0), ('Sir Benjamin Baker KCB KCMG', 0), ('Victor Hayward', 0), ('Dame Margot Fonteyn DBE', 0), ('Ambrose Godfrey', 0), ('Sir George Grove', 0), ('Thomas Dunckerley', 0), ('Alexander Pope', 0), ('David Sutch', 0), ('George Arthur Roberts', 0), ('Laurence Cunningham', 0), ('Gregory Isaacs', 0), ('John Richards Lapenotiere', 0), ('The Trafalgar Way', 0), ('Dr Thomas John Barnardo', 0), ('Henry Watson Fowler', 0), ('Rita Ora', 0), ('Alek Wek', 0), ('Judith Kerr', 0), ('Walter Hayman', 0), ('Sir Nigel Gresley', 0), ('William Barlow', 0), ('Rt Hon. Lord Edwin Duncan Sandys CH PC MP', 0), ('Marquee Club', 0), ('Claude Duval', 0), ('Peter Pan', 0), ('Joe Strummer', 0), ('Sir Rowland Hill KCB FRS', 0), ('Charlotte Mew', 0), ('Major Allan Beckett MBE RE', 0), ('Nina Bawden CBE', 0), ('William Holman-Hunt OM', 0), ('Duke Field-Marshal Arthur Wellesley', 0), ('Duke Arthur Wellesley', 0), ('Angad Paul', 0), ('Sir Rt Hon. Earl Lord Viscount Thomas Wentworth KG PC 2nd Baronet', 0), ('Westminster City Council', 0), ('The National Sporting Club', 0), ('Charlie Paynter', 0), ('Duke James Brydges', 0), ('Mark Ashton', 0), ('Sir Henry Bessemer FRS', 0), ('Trident Studios', 0), ('Emile Ford', 0), ('Saifullah Zaman', 0), ('George Thomas Landmann', 0), ('Stella Isaacs , Lady Reading', 0), ('Sir Henry Cotton MBE', 0), ('Lytton Strachey', 0), ('Radclyffe Hall', 0), ('Burt Kwouk OBE', 0), ('John Dee', 0), ('Edward Johnston', 0), ('Nelly Power', 0), ('James South', 0), ('Chad Varah CH CBE', 0), ('Henri Gaudier-Brzeska', 0), ('Spencer Frederick Gore', 0), ('Sir Robert Watson-Watt KCB FRS FRAeS', 0), ('Rosemary Stjernstedt', 0), ('Margaret Elizabeth Noble', 0), ('Terence Cuneo OBE CVO RGI FGRA', 0), ('Queen', 0), ('Lawrence Sheriff', 0), ('Blackheath Proprietary School', 0), ('St Mary Aldermary', 0), ('Paddington', 0), ('Michael Bond', 0), ('Philip Astley', 0), ('Capability Brown', 0), ('Worshipful Company of Fan Makers', 0), ('Sadie Crawford', 0), ('William Bernhardt Tegetmeier', 0), ('William Walker', 0), ('Maida Vale Studios', 0), ('The Ivy', 0), ('William Henry Hudson', 0), ('Capt Thomas Riversdale Colyer-Fergusson VC', 0), ('Colin Hunter RI RSW ARA', 0), ('C. R. W. Nevinson', 0), ('Alliott Verdon Roe', 0), ('László Moholy-Nagy', 0), ('Marcel Breuer', 0), ('Walter Gropius', 0), ('Robert Hooke', 0), ('Bill Bruford', 0), ('Peter Banks', 0), ('Jon Anderson', 0), ('Madness', 0), ('Moorgate tube crash', 0), ('Harry Mallin', 0), ('Adrian Stephen', 0), ('Duncan Grant', 0), ('George Holyoake', 0), ('Donald Swann', 0), ('Hilda Hewlett', 0), ('William Hartnell', 0), ('Daphne Steele', 0), ('Agnes Arber', 0), ('Mail Rail', 0), ('Sir William Beveridge KCB', 0), ('Dr John Snow', 0), ('Grand Surrey Canal', 0), ('Dr David Widgery', 0), ('Rt Hon. Earl William Pitt PC FRS', 0), ('William Lambe', 0), ('Leonard Woolf', 0), ('Dame Rosalind Paget DBE', 0), ('Eduardo Luigi Paolozzi CBE RA', 0), ('Herbert Campbell', 0), ('Derek Jarman', 0), ('Tony Hadley', 0), ('Martin Kemp', 0), ('John Keeble', 0), ('Steve Norman', 0), ('Gary Kemp', 0), ('Carrie Pickles', 0), ('GCHQ', 0), ('Sir Matthew Bourne OBE', 0), ('Katharine Furse', 0), ('Abram Games OBE RDI', 0), ('The Great Conduit, London', 0), ('The Beatles', 0), ('Anthony Newley', 0), ('Sir Malcolm Campbell', 0), ('Larry', 0), ('Isla Stewart', 0), ('John Alexander Christie VC', 0), ('Anthony Trollope', 0), ('William Makepeace Thackeray', 0), ('Marquess Robert Grosvenor', 0), ('Beryl Swain', 0), ('Sir Dr Edward Frankland KCB PhD FRS', 0), ('Sir Arthur Pearson', 0), ('Enid Flora Balint-Edmonds', 0), ('Pickles', 0), ('Camille Silvy', 0), ('John Linnell', 0), ('Ralph Downes', 0), ('Eric Ravilious', 0), ('Adam Faith', 0), ('King Edward Frederick Muteesa II', 0), ('Sir Ernst Chain FRS', 0), ('Belsize Square Synagogue', 0), ('Martha Gellhorn', 0), ('Angela Carter', 0), ('Dame Mary Quant DBE', 0), ('Arthur Elphinstone', 0), ('Bob Marley', 0), ('William Bowman', 0), ('Patrick Abercrombie', 0), ("Ronnie Scott's Jazz Club", 0), ('Ronnie Scott', 0), ('Nicky Hopkins', 0), ('Gertrude Bell CBE', 0), ('Sir John Wolfe Barry', 0), ('Chelsea Physic Garden', 0), ('Hans Keller', 0), ('Milein Cosman', 0), ('Rock Island Line, Lonnie Donegan version', 0), ('Lonnie Donegan', 0), ('Mary Ann Nichols', 0), ("Dr Williams's Library", 0), ('John Dickens', 0), ('Helen Gwynne-Vaughan', 0), ('Austin Rudd', 0), ('London Stone', 0), ('Sir Christopher Wren PRS', 0), ('John Murray Easton', 0), ('Loughton tube station', 0), ('Clementine Churchill', 0), ('Vanessa Bell', 0), ('Peter Barr', 0), ('Paul Julius Reuter', 0), ('Frank Crichlow', 0), ('James Braidwood', 0), ('Kensington Hippodrome', 0), ('Gregory Foster', 0), ('Basil Jellicoe', 0), ('Thomas Cubitt', 0), ('William Friese-Greene', 0), ('John Strype', 0), ('William Henry Smith', 0), ('Great Trees of London', 0), ('Mary Harris Smith FCA', 0), ('Cabmen’s Shelter Fund', 0), ('John Nash', 0), ('Priory of the Blackfriars', 0), ('King George III of the United Kingdom of Great Britain', 0), ('Edwin Henry Horne', 0), ('All Saints Cemetery', 0), ('Cassivellaunus', 0), ('Kindertransport', 0), ('General Dwight D. Eisenhower OM', 0), ('King George VI of the United Kingdom', 0), ('Victoria Wood', 0), ('Channing School', 0), ('Matilda Sharpe', 0), ('Gladys Cooper', 0), ('Bernard Lens', 0), ('Circles (film distributor)', 0), ('Rumer Godden', 0), ('Thomas Coutts', 0), ('Harriot Mellon , Duchess of St Albans', 0), ('Angela Burdett-Coutts, 1st Baroness Burdett-Coutts', 0), ('Stella Dorothea Gibbons', 0), ('Sir John Everett Millais PRA 1st Baronet', 0), ('The Pre-Raphaelite Brotherhood', 0), ('Duke Charles Beauclerk', 0), ('William Bengo Collyer', 0), ('Myddelton Square', 0), ('Jeremy Lloyd', 0)]

name = [item[0] for item in sorted_list]
scores = [item[1] for item in sorted_list]_____no_output_____y_pos = list(range(len(name[:80])))
plt.rcParams["figure.figsize"] = (16,16)
fig = plt.figure()
plt.barh(y_pos, scores[:80])
plt.yticks(y_pos, name[:80])

fig.suptitle('Bad actor scores',  fontsize = 20)
plt.xlabel('Bad actor score', fontsize = 15)
plt.ylabel('Name',  fontsize = 15)

plt.show()
fig.savefig('Bad actor score')_____no_output_____
</code>


# Notebook from jennyfothergill/hoomd-examples
Path: Initialization - Simulation contexts.ipynb

import hoomd
import hoomd.md_____no_output_____

# Simulation contexts

Every hoomd job script **must** have at least one simulation context. The context defines how a simulation is to be executed along with the state of the system including the properties of all particles, forces, integrators, etc... Create a simulation context with ``hoomd.context.initialize``._____no_output_____

hoomd.context.initialize('--mode=cpu');HOOMD-blue v2.1.5 CUDA (7.5) DOUBLE HPMC_MIXED MPI SSE SSE2 SSE3 SSE4_1 SSE4_2 AVX
Compiled: 03/12/2017
Copyright 2009-2016 The Regents of the University of Michigan.
-----
You are using HOOMD-blue. Please cite the following:
* J A Anderson, C D Lorenz, and A Travesset. "General purpose molecular dynamics
  simulations fully implemented on graphics processing units", Journal of
  Computational Physics 227 (2008) 5342--5359
* J Glaser, T D Nguyen, J A Anderson, P Liu, F Spiga, J A Millan, D C Morse, and
  S C Glotzer. "Strong scaling of general-purpose molecular dynamics simulations
  on GPUs", Computer Physics Communications 192 (2015) 97--107
-----
HOOMD-blue is running on the CPU

## Execution context

The **first** simulation context created in the simulation also creates the execution context. Once set, the execution context cannot be changed without restarting python. Note how the above context is running on the CPU and how the following context ignores the request to change execution options._____no_output_____

hoomd.context.initialize('--mode=gpu');*Warning*: Ignoring new options, cannot change execution mode after initialization.

The execution context defines the device the simulation will execute on (i.e. CPU or GPU), how many MPI ranks to run in parallel, GPU device options, etc... Control these parameters with command line options. For a script run on the command line, use ``hoomd.context.initialize()`` and pass the options in from the command line ``python script.py [options]``. In a jupyter notebook, specify the command line options in the string argument to ``hoomd.context.initialize``. _____no_output_____## Simulation context

Each time you call it, ``hoomd.context.initialize`` creates a new simulation context and makes it active. You can execute multiple simulation runs in a script by using different contexts.

Here are some short MD simulations. Notice how the 2nd simulation runs fewer steps per second because it has more particles._____no_output_____

sim1 = hoomd.context.initialize('');
hoomd.init.create_lattice(unitcell=hoomd.lattice.sc(a=2.0), n=5);
# setup forces, integrators and run simulation 1
nl = hoomd.md.nlist.cell();
lj = hoomd.md.pair.lj(r_cut=3.0, nlist=nl);
lj.pair_coeff.set('A', 'A', epsilon=1.0, sigma=1.0);
all = hoomd.group.all();
hoomd.md.integrate.mode_standard(dt=0.001);
hoomd.md.integrate.brownian(group=all, kT=0.1, seed=987);
hoomd.run(2e4);notice(2): Group "all" created containing 125 particles
notice(2): integrate.langevin/bd is using specified gamma values
notice(2): -- Neighborlist exclusion statistics -- :
notice(2): Particles with 0 exclusions             : 125
notice(2): Neighbors included by diameter          : no
notice(2): Neighbors exclusim2 = hoomd.context.initialize('');
hoomd.init.create_lattice(unitcell=hoomd.lattice.sc(a=2.0), n=10);
# setup forces, integrators and run simulation 2
nl = hoomd.md.nlist.cell();
lj = hoomd.md.pair.lj(r_cut=3.0, nlist=nl);
lj.pair_coeff.set('A', 'A', epsilon=1.0, sigma=1.0);
all = hoomd.group.all();
hoomd.md.integrate.mode_standard(dt=0.001);
hoomd.md.integrate.brownian(group=all, kT=0.2, seed=10);
hoomd.run(2e3);notice(2): Group "all" created containing 1000 particles
notice(2): integrate.langevin/bd is using specified gamma values
notice(2): -- Neighborlist exclusion statistics -- :
notice(2): Particles with 0 exclusions             : 1000
notice(2): Neighbors included by diameter          : no
notice(2):

## Switching between contexts

The above example showed how to run multiple simulations in one script, one after another. You can also save contexts in variables and swap between them. All hoomd commands apply to the current context only.

Activate simulation 1 and continue running it for more steps._____no_output_____

with sim1:
    hoomd.run(2e4);** starting run **
Time 00:00:06 | Step 40000 / 40000 | TPS 9152.24 | ETA 00:00:00
Average TPS: 9126.55
---------
-- Neighborlist stats:
556 normal updates / 201 forced updates / 0 dangerous updates
n_neigh_min: 0 / n_neigh_max: 54 / n_neigh_avg: 23.888
shortest rebuild period: 12
-- Cell list stats:
Dimension: 2, 2, 2
n_min    : 0 / n_max: 61 / n_avg: 15.625
** run complete **

Activate simulation 2 and continue running it for more steps._____no_output_____

with sim2:
    hoomd.run(2e3);** starting run **
Time 00:00:06 | Step 4000 / 4000 | TPS 1091.01 | ETA 00:00:00
Average TPS: 1087.11
---------
-- Neighborlist stats:
248 normal updates / 21 forced updates / 0 dangerous updates
n_neigh_min: 0 / n_neigh_max: 52 / n_neigh_avg: 12.267
shortest rebuild period: 5
-- Cell list stats:
Dimension: 5, 5, 5
n_min    : 0 / n_max: 27 / n_avg: 8
** run complete **


# Notebook from bt2901/UnbalancedTopicModelling
Path: notebooks/statistics_plot_for_lenta.ipynb

import os
import sys
import time
import numpy as np
import pandas as pd
from matplotlib import pyplot as plt

sys.path.append('..')
sys.path.append('../..')

from library import ModelStatistics, SemanticHeterogenityRegularizer
from library import custom_fit_offline, weigh_average

import artm_____no_output_____DATA_PATH = '../data/lenta_22.vw'
BATCH_PATH = '../data/lenta_22_batches'
DICT_PATH = '../data/lenta_22.dict'

batch_vectorizer_lenta = artm.BatchVectorizer(
    data_path=DATA_PATH,
    data_format='vowpal_wabbit',
    target_folder=BATCH_PATH
)

dictionary_lenta = artm.Dictionary()
if not os.path.isfile(DICT_PATH):
    dictionary_lenta.gather(data_path=batch_vectorizer_lenta.data_path)
    dictionary_lenta.save(DICT_PATH)
dictionary_lenta.load(DICT_PATH)_____no_output_____

## Semantic heterogenity regularizer_____no_output_____

model_lenta = artm.ARTM(num_topics=22, cache_theta=True)
model_lenta.scores.add(artm.scores.PerplexityScore(name='perplexity'))
model_lenta.initialize(dictionary_lenta)

statistics = ModelStatistics(model_lenta)
custom_regularizers = [
    SemanticHeterogenityRegularizer('heterogenity', 0.05, statistics, batch_vectorizer_lenta)
]

custom_fit_offline(model_lenta, custom_regularizers, batch_vectorizer_lenta, 15)_____no_output_____model_lenta_unbalanced = artm.ARTM(num_topics=22, cache_theta=True)
model_lenta_unbalanced.scores.add(artm.scores.PerplexityScore(name='perplexity'))
model_lenta_unbalanced.initialize(dictionary_lenta)

model_lenta_unbalanced.fit_offline(batch_vectorizer_lenta, 15)_____no_output_____statistics = ModelStatistics(model_lenta_unbalanced)_____no_output_____topic_stat = statistics.calculate_topic_statistics(batch_vectorizer_lenta, calculate_n=True, recalculate_n=False)../library/statistics.py:146: RuntimeWarning: divide by zero encountered in log
  model_loss = np.log(self.phi.values / phi_safe)
plt.figure(figsize=(14,4))

plt.subplot(1,2,1)
values = np.array(model_lenta.score_tracker['perplexity'].value)
med = np.median(values)
values[values > 5 * med] = np.nan

plt.title('Perplexity with regularizer')
plt.plot(values)

plt.subplot(1,2,2)
values = np.array(model_lenta_unbalanced.score_tracker['perplexity'].value)
med = np.median(values)
values[values > 5 * med] = np.nan

plt.title('Perplexity without regularizer')
plt.plot(values)_____no_output_____

### Train many models_____no_output_____

def train_model_with_heterogenity(dictionary, batch_vectorizer, tau, num_topics=22, num_iterations=15):
    model = artm.ARTM(num_topics, cache_theta=True)
    model.scores.add(artm.scores.PerplexityScore(name='perplexity'))
    model.initialize(dictionary)

    statistics = ModelStatistics(model)
    custom_regularizers = [
        SemanticHeterogenityRegularizer('heterogenity', tau, statistics, batch_vectorizer)
    ]

    custom_fit_offline(model, custom_regularizers, batch_vectorizer, num_iterations)

    return model, statistics_____no_output_____def train_models_with_heterogenity(dictionary, batch_vectorizer, num_topics, all_possible_taus=None, num_iterations=15):
    if all_possible_taus is None:
        all_possible_taus = [10, 1, 0.1, 0.01, 0.001, 0.0001, 0.00001]

    model_statistics_time = {}
    for tau in all_possible_taus:
        start_time = time.time()
        model, statistics = train_model_with_heterogenity(dictionary, batch_vectorizer, tau, num_topics, num_iterations)
        end_time = time.time()

        model_statistics_time[tau] = (model, statistics, end_time - start_time)

        print(f'Consumed time for tau {tau}: {end_time - start_time}.')

    topic_statistics = {}
    for tau, mod_stat_time in model_statistics_time.items():
        topic_statistics[tau] = mod_stat_time[1].calculate_topic_statistics(batch_vectorizer)

    return model_statistics_time, topic_statistics_____no_output_____def plot_statistics(model_statistics_time, topic_statistics, plotname=None):
    plt.rc('font', size=25)
    colors = ['crimson', 'mediumpurple', 'steelblue', 'forestgreen', 'khaki', 'orange', 'salmon', 'lightgreen', 'deeppink', 'navy', 'teal']
    titles = [
        'Семантическая неоднородность от n_t',
        'Бинарная семантическая неоднородность от n_t',
        'Семантическая неоднородность с бинарной функцией потерь от n_t',
        'Бинарная семантическая неоднородность с бинарной функцией потерь от n_t',
        'Семантическая загрязнённость от n_t',
        'Бинарная семантическая загрязнённость от n_t',
        'Семантическая загрязнённость с бинарной функцией потерь от n_t',
        'Бинарная семантическая загрязнённость с бинарной функцией потерь от n_t'
    ]

    num_subplots = len(topic_statistics)
    num_statistics = len(titles)

    fig = plt.figure(figsize=(128,8 * num_subplots))

    for ind, (tau, stat) in enumerate(topic_statistics.items()):
        for i in range(num_statistics):
            plt.subplot(num_subplots, num_statistics, ind * num_statistics + 1 + i)
            plt.scatter(model_statistics_time[tau][1].nt, stat[i], c=colors[ind])

            plt.xlabel('n_t')
            plt.ylabel(f'tau={tau}')

            if not ind:
                plt.title(titles[i])

            if i:
                plt.ylim(-0.05, 1.05)
            else:
                plt.ylim(-0.05, max(stat[0]) + 0.1)

    fig.tight_layout()

    if plotname is not None:
        plt.savefig(plotname)_____no_output_____model_statistics_time, topic_statistics = train_models_with_heterogenity(dictionary_lenta, batch_vectorizer_lenta, 2, [1, 0.1], 2)Consumed time for tau 1: 457.25625920295715.
Consumed time for tau 0.1: 457.4624409675598.
plot_statistics(model_statistics_time, topic_statistics)_____no_output_____

### Train many more models_____no_output_____

del topic_stat
del model_statistics_time

import rc
rc.collect()_____no_output_____all_possible_taus = [10, 1, 0.1, 0.01, 0.001, 0.0001, 0.00001]

model_statistics_time = {}
for tau in all_possible_taus:
    start_time = time.time()
    model, statistics = train_model_with_heterogenity(dictionary_lenta, batch_vectorizer_lenta, tau, 75)
    end_time = time.time()

    model_statistics_time[tau] = (model, statistics, end_time - start_time)

    print(f'Consumed time for tau {tau}: {end_time - start_time}.')_____no_output_____

---_____no_output_____

topic_stat = {}
for tau, mod_stat_time in model_statistics_time.items():
    topic_stat[tau] = mod_stat_time[1].calculate_topic_statistics(batch_vectorizer_lenta)_____no_output_____plt.rc('font', size=25)
colors = ['crimson', 'mediumpurple', 'steelblue', 'forestgreen', 'khaki', 'orange', 'salmon']
titles = [
    'Семантическая неоднородность от n_t',
    'Бинарная семантическая неоднородность от n_t',
    'Семантическая неоднородность с бинарной функцией потерь от n_t',
    'Бинарная семантическая неоднородность с бинарной функцией потерь от n_t',
    'Семантическая загрязнённость от n_t',
    'Бинарная семантическая загрязнённость от n_t',
    'Семантическая загрязнённость с бинарной функцией потерь от n_t',
    'Бинарная семантическая загрязнённость с бинарной функцией потерь от n_t'
]

num_subplots = len(topic_stat)
num_statistics = len(titles)_____no_output_____fig = plt.figure(figsize=(128,64))

for ind, (tau, stat) in enumerate(topic_stat.items()):
    for i in range(num_statistics):
        plt.subplot(num_subplots, num_statistics, ind * num_statistics + 1 + i)
        plt.scatter(model_statistics_time[tau][1].nt, stat[i], c=colors[ind])

        plt.xlabel('n_t')
        plt.ylabel(f'tau={tau}')

        if not ind:
            plt.title(titles[i])

        if i:
            plt.ylim(-0.05, 1.05)
        else:
            plt.ylim(-0.05, max(stat[0]) + 0.1)

fig.tight_layout()
plt.savefig('statistics_75.png')_____no_output_____

## Plot MIL datasets_____no_output_____

import gc

gc.collect()_____no_output_____from topicnet.cooking_machine import Dataset_____no_output_____NG20 = '/data/datasets/20_News_dataset/train_preprocessed.csv'
MKB10 = '/data/datasets/MKB10_wiki/MKB10.csv'
NIPS = '/data/datasets/NIPS/ReadyData.csv'_____no_output_____dictionaries = []
batch_vectorizers = []
nums_topics = [20, 25, 10, 30]
names = ['20newsgroups', 'mkb10', 'nips10', 'nips30']_____no_output_____DATA_PATH = '../data/NIPS.vw'
BATCH_PATH = '../data/NIPS_batches'
DICT_PATH = '../data/NIPS.dict'

batch_vectorizer = artm.BatchVectorizer(
    data_path=DATA_PATH,
    data_format='vowpal_wabbit',
    target_folder=BATCH_PATH
)

dictionary = artm.Dictionary()
if not os.path.isfile(DICT_PATH):
    dictionary.gather(data_path=batch_vectorizer.data_path)
    dictionary.save(DICT_PATH)
dictionary.load(DICT_PATH)

dictionaries.append(dictionary)
batch_vectorizers.append(batch_vectorizer)_____no_output_____all_model_statistics_time = {}

for (dictionary, batch_vectorizer, num_topics, name) in zip(dictionaries, batch_vectorizers, nums_topics, names):
    model_statistics_time, topic_statistics = train_models_with_heterogenity(dictionary, batch_vectorizer, num_topics)
    all_model_statistics_time[name] = (model_statistics_time, topic_statistics)
    plot_statistics(model_statistics_time, topic_statistics, name)

    gc.collect()_____no_output_____


# Notebook from kgdunn/python-basic-notebooks
Path: Module-03-interactive.ipynb

Table of Contents

1  From strings to lists to strings to lists

2  If and else if branching in code

3  Reading from a file

4  Creating errors, checking for errors and handling errors

5  Challenges

_____no_output_____> All content here is under a Creative Commons Attribution [CC-BY 4.0](https://creativecommons.org/licenses/by/4.0/) and all source code is released under a [BSD-2 clause license](https://en.wikipedia.org/wiki/BSD_licenses).
>
>Please reuse, remix, revise, and [reshare this content](https://github.com/kgdunn/python-basic-notebooks) in any way, keeping this notice._____no_output_____# Module 3: Overview

We cover the following topics here:

1. Reviewing lists and strings, and interchanging between the two.
2. If-else branching in your code
3. Files: reading from a file; looping over their contents line by line.
4. Error creation, error checking and dealing with errors.

On the side we will cover some aspects of debugging.

## Preparing for this module

* Review the sections from last week again, to fill in the blanks in your knowledg: [Strings and Lists](https://runestone.academy/runestone/static/fopp/Sequences/toctree.html), then [for loops](https://runestone.academy/runestone/static/fopp/Iteration/toctree.html), then about [files](https://runestone.academy/runestone/static/fopp/Files/toctree.html)  - up to section 10.5
* New: Check your knowledge of if-else branches: https://www.w3schools.com/python/python_conditions.asp

Also recommended:
* Get a Bitbucket or Github account set up
* Get the Git software client installed and running

## First, a quick warm-up, with 10 questions:

1. How many characters will be returned? ``"my_string"[0:5]``
2. And here? ``"my_string "[5:100:2]``
3. What method can you apply to strings to strip away any whitespace, like in the above string?
4. What method can you apply to strings to check if the contents of the string are all numbers?
5. What function do you use to determine the length of string?
6. And the length of a list?
7. You want to get, and then remove, the 4th value of the list. How do you do that?
8. What happens when you have 2 lists and you write this command: ``list_A + list_B``?
9. What is the value of ``output`` after this command: ``output = my_list.reverse()``?
10. Tell your colleague how you would write a for loop to print the values in this list, but from back to front: ``[9, 7, 5, 3, 2]``_____no_output_____## From strings to lists to strings to lists

In the [prior module](https://yint.org/pybasic02) we focused on lists and strings separately. We also saw they have a lot in common, in terms of behaviour. But there was one key difference: lists are *mutable*, and strings are *immutable* (unchangable).

Some things are just more intuitive with lists. For example, if we have:

```python
my_string = 'A long  sentence, with text    and faulty spacing.'``
```

How many words are in that sentence? It is easier if you can convert it to a list.

**String to list**
```python
my_string = 'A long  sentence, with text    and faulty spacing.'``
string_as_list = my_string.split(' ')
print('There are {} words in the string.'.format(len(string_as_list)))
```

The ``.split(...)`` method is extremely useful, but we did not cover it last time. You can split on any character, or characters. Try it:
* ``my_string.split() # mmmmm, what does this do?``
* ``my_string.split('e')``
* ``my_string.split('en')``

**List back to a string**

Well to recombine a split string, you can use the ``''.join()`` method. Notice that I wrote it as ``''.join()``, indicating it is a method for string types.

Try these lines of code one-by-one, and ensure you can figure out what the ``join`` method does.

```python
my_list = ['Divided', 'we', 'fall,', 'but', 'united', 'we', 'stand.']
print(''.join(my_list))
print(' '.join(my_list))
print('\n'.join(my_list))
print('\t'.join(my_list))
print(')('.join(my_list))
```
Which one of the above are you most likely to use the most?

**Pro tip**: if you are generating an automated report, you can build up your report paragraph by paragraph:

```python
report = []
report.extend(...) # add a new section
report.extend(...) # add the next section
...

# Convert the whole report to a (long) string
print('\n'.join(report))

```_____no_output_____## If and else if branching in code

Like in other languages, Python also has the ability to create branches in the code.

> if \_\_<condition> \_\_ then \_\_<action\>\_\_

They can also have an ``else`` part:

> if \_\_<condition> \_\_ then \_\_<action\>\_\_ else \_\_<some other action\>\_\_

Or even multiple ``if else`` checks. These are the equivalent of the ``switch`` or ``case`` constructions found in other languages.

Indentation is important, as shown in this example.
```python
slope = ... # some code goes here to calculate the slope
if slope > 0:
    sign_of_slope = 'positive'
elif slope < 0:
    sign_of_slope = 'negative'
else:
    sign_of_slope = 'zero'

print('The slope was observed to be {}.'.format(sign_of_slope))
```

**Note:** you can have zero or multiple ``elif`` sections in this if-else ladder. The ``else`` part, if required, must go at the end of the ladder.

Use the above code to create a prototype for a robotic system which will automatically titrate a solution to a neutral pH, depending on the value of variable ``pH``. Print the appropriate string, depending on the condition:

* If $0 \leq \text{pH} \leq 5.5$: "The solution is acidic. Adding 2 mL of ammonia hydroxide, NH4OH."
* If $5.5 \lt \text{pH} \leq 8.5$: "The solution is neutral. Adding nothing."
* If $8.5 \lt \text{pH} \leq 14$: "The solution is basic. Adding 1.5 mL of phosphoric acid, H3PO4."
* If $\text{pH} < 0$ or $\text{pH} > 14$: "The pH value is out of range. Check your pH probe."

Run your code for some/all of these values of pH values to ensure all branches in your code are working as you expected: ``-4.2, 0, 3.721, 5.5, 5.500001, 8.5, 10.98765, 14, 140``

This is called code testing. In the ***Advanced section*** of the course we will come back to formal methods of code testing._____no_output_____In the [prior module](https://yint.org/pybasic01) we were writing code to automatically write a report for us. The code generated this output:

> The regression trend of **45.9** mg/day was detected for this product, with a p-value of **0.00341**. This indicates that there is a **rising** trend over time.

Again, use the above code as starting point, but add to it. At the end, the code should be able to produce all 4 variants of the outputs shown below, depending on the value of ``slope`` and ``p_value``.
* The ``slope`` is either considered to be **rising** or **falling**.
* A ``p_value`` greater than 0.20 requires that an extra phrase be added.

*Variant 1*: The regression trend of **12.4** mg/day was detected for this product, with a p-value of **0.0141**. This indicates that there is a **rising** trend over time, which indicates an important influence.

*Variant 2*: The regression trend of **12.4** mg/day was detected for this product, with a p-value of **0.425**. This indicates that there is a **rising** trend over time, but it likely has no impact on the system.

*Variant 3*: The regression trend of **-5.2** mg/day was detected for this product, with a p-value of **0.142**. This indicates that there is a **falling** trend over time, which indicates an important influence.

*Variant 4*: The regression trend of **-5.2** mg/day was detected for this product, with a p-value of **0.209**. This indicates that there is a **falling** trend over time, but it likely has no impact on the system.

Check that your code correctly produces the output when:
* ``slope = 0.00542`` and ``p_value = 0.0419``
* ``slope = -521`` and ``p_value = 0.2000001``_____no_output_____## Reading from a file

We will cover simple reading from a text file here. The general, simple way to read a file containing any regular text is:

```python
filename = "myfile.txt"
f = open(filename, "r")
all_lines_as_string = f.read()
print(type(all_lines_as_string))

# Do something with the list ``all_lines``. One entry per line.

# Close the file afterwards:
f.close()
```

**Try these steps**:
1. Go to the same directory as where your Python script is being saved.
2. Create a new text file, called ``myfile.txt``, and write more than one line of text to your file.
3. Save your text file.
4. Run the above code, modifying it so that it will:

   * Print all the text in your file, ``all_lines_as_string``, in uppercase.
   * What is the length of ``all_lines_as_string``?
5. Change the above code so that the second line contains: ``all_lines_as_list = f.readlines()``

    * Verify that ``all_lines_as_list`` is indeed a list.
    * Write a for-loop that prints the length of each line:

        ``Line 1 has __ characters``

        ``Line 2 has __ characters``
        etc_____no_output_____The above is a good start with files, but there are some shortcomings which we can improve on:

* You must have the file called ``myfile.txt`` in the same directory as where you are running Python.
* You must not forget to close the file again.

1. Move the file ``myfile.txt`` to a different directory on your computer.
2. Use the following construction to create the ``full_filename`` variable :

```python
base_folder_mac_or_linux = '/users/home/yourname'
base_folder_windows = r'C:\Users\home\yourname'  # do you remember why we use the r'...' string?
filename = 'myfile.txt'
import os
full_filename = os.path.join(base_folder_windows, filename)
f = open(full_filename, "r")
# Do something with variable ``f``
f.close()
```
3. Modify the code you wrote in the prior question to use this new structure. Choose either the ``base_folder_mac_or_linux`` or ``base_folder_windows`` variable and modify it, based on the type of computer you are working on.
4. Verify that ``full_filename`` is indeed what you expect it to be: the full path name to your text file.

We still have not solved the last shortcoming, regarding closing the file. Read this Stackoverflow page [on why you should close files](https://stackoverflow.com/questions/25070854/why-should-i-close-files-in-python). Python can automatically close the file for you, if you use this structure shown below. Notice the code is essentially the same, expect you replace one line, and remove the ``f.close()`` statement.

```python
# This is the preferred way to open and use files in Python

base_folder_mac_or_linux = '/users/home/yourname'
base_folder_windows = r'C:\Users\home\yourname'  # why the r'...' string?
filename = 'myfile.txt'
import os
full_filename = os.path.join(base_folder_windows, filename)
with open(full_filename, "r") as f:
    # Do something with variable ``f``, for example:
    file_contents = f.readlines()
    # What "type" is ``file_contents``?
    # Other statements go in the with block, if required.

# The file will be closed at this point, when the ``with``
# block is exited.
```

Copy and paste your file handling code above, and modify it to use the ``with`` block instead._____no_output_____## Creating errors, checking for errors and handling errors

Sometimes in our code we want to check if a variable has a certain value, or a certain condition, before we continue with the rest of the code.

1. Try this: ``print(4/0)`` and you will get a ``ZeroDivisionError``. We say that Python has **thrown** an error.

2. Try throwing another error:
```python
import math
pH = -0.024
log_pH = math.log(pH)
```
and you will get an error, specifically an error of the type called ``ValueError``.

3. Lastly, try this ``[1, 2, 3].pop(4)`` will throw which type of error? Does it make sense that that error is thrown?

There are several ways to deal with these errors. The crudest is to simply stop the program if a condition is not met.

```python
pH = 2.87
assert(pH > 0)

pH = -0.024
assert(pH > 0)
```

What difference do you see in the output between the two ``assert(...)`` statements?

A more sophisticated way to deal with this is to create an ``if-else`` branch in your code. In the above examples you can:

 1. check the value of the denominator before you do the division;
 2. check if pH values are above and below zero;
 3. check if the length of your list is long enough before you do ``.pop(4)``.
 _____no_output_____Writing an if-else for every anticipated situation [can be messy, and lead to slower code](https://stackoverflow.com/questions/7604636/better-to-try-something-and-catch-the-exception-or-test-if-its-possible-first).

A cleaner way to deal with this is with a try-except structure. You **try** to run the instructions, and should an **except**ion occur, then you *catch* the error that was *thrown* by the software.

```python
import math

try:
    # Some code goes here that calculates or gets the pH value
    pH = -0.024
    log_pH = math.log(pH)
    print('The logged pH is {}'.format(log_pH))
except ValueError as error:
    print('Cannot calculate a negative log.')
    print('Python returned this error: {}'.format(error))
```

All the code in the **try** block will be executed and completed if no exceptions occur. The code in the **except** block will only run if the exception is triggered.

**Try it yourself**

Try writing a try-except block for the situation where you calculate the roots of the quadratic equation: $ax^2 + bx + c = 0$. In other words, what are the values of $x$ that set the equation equal to zero. We saw this in a [prior session](https://yint.org/pybasic01).

$$x={\frac {-b\pm {\sqrt {b^{2}-4ac\ }}}{2a}}$$

Write the code, using a try-except structure, to calculate the value of $x$ for these 2 situations:
* a=3, b=6, c=3  `` # this will go through the 'try' block``
* a=0, b=1, c=2   ``# this will go through the 'except' block``
_____no_output_____*Another try-except* exercise, but this time for files.

```python
try:
    with open('non-existent-file.txt') as file:
        read_data = file.read()
except FileNotFoundError as error_nofile:
    print("Could not open file: {}.format(error_nofile))
```

Using try-except structures in your code makes your code robust.

For later, read this page, https://realpython.com/python-exceptions/, which nicely shows how to extend your knowledge, and use ``try-except-else-finally`` structures._____no_output_____## Challenges

Next you should proceed to do either Challenge 1, or Challenge 2 (***or both!***).

After that you should complete Challenge 3. Challenge 4 is a variation of Challenge 3, which you can easily complete as well._____no_output_____# Challenge 1

Several websites provide random DNA sequences that you can use in your code. We would like to calculate various statistics on the DNA string, e.g. ``dna_string = 'CGAGATCAGATACGATTCTTATATTCTCAATGAGGAGCCAT'``.
* The number of C, G, T and A bases.
* The percentage of C, G, T and A bases. Does this look right?
* The number of (G and C) bases divided by the total base length.
* The number of (A and T) bases divided by the total length.
* The ratio of A/T and the ratio G/C.

1. It is always a good tip to develop your code on some input that you already know the answer to. So we will create a string of 4000 entries, with approximately 1000 C, G, T and A bases in the string. Then we know the above 5 statistics should approximately be:

    * [1000, 1000, 1000, 1000]
    * [25, 25, 25, 25]
    * 2000/4000
    * 2000/4000
    * 1000/1000 and 1000/1000

    To create our "known input" we will use the ``numpy`` library in Python. We will see this library later on, but for now you can just use this code as-is:

    ```python
    import numpy as np
    bases = ['C', 'G', 'T', 'A']
    length = 4000

    # Uniformly select letters from the above list (creates a balanced sample)
    dna_list = np.random.choice(bases, length).tolist()
    dna_string = ''.join(dna_list)   # see how useful the .join() function is?

    # Next, write the code here to calculate the statistics on this DNA sequence
```

2. Generate a string of 10000 DNA bases from the internet (https://www.bioinformatics.org/sms2/random_dna.html) and copy/paste them directly to a file on your computer.

    Open that file, using the file reading code above, to calculate various statistics on this string. Do not hard-code any variables into your code: your code should be reusable for any length string.

    Do the statistics from the Bioinformatics site seem to come from a uniform distribution (25% chance for C, G, A or T), or do the distribution of the base pairs follow the distribution [discovered by Chargaff](https://en.wikipedia.org/wiki/Chargaff%27s_rules#Percentages_of_bases_in_DNA)? If so, which organism do they approximate?
_____no_output_____# Challenge 2

This challenge is to read in a constant stream of values and calculate the moving average of them. This is, again, based, on a real case that happens rather frequently.

The [concentration of ammonia](http://openmv.net/info/ammonia) values can be downloaded and saved to your computer. Using the [code shown above](#Reading-from-a-file), create a ``with`` block, and read the values from the file line-by-line:

You should check that what you get here in Python matches what you see in Excel, or some other software that can open the CSV file for you.

```python
# Read the file directly from your local computer
filename = 'ammonia.csv'
with open(filename) as f:
    for index, concentration in enumerate(f.readlines()):

        # Skip the first line of the file: it is a text heading.
        if index == 0:
            continue

        # Convert the text to a float, and then do something with it ...
        print(float(concentration))
```

*Building up the problem*:
1. Calculate the cumulative sum of the values in the CSV file.
2. Now modify your code and at the end divide by the total number of samples you added up, so you report the global average of all values in the file.
3. Next, solve the challenge: the idea is to calculate the moving average over $n=5$ values; called a window of 5 values. Accumulate the first 5 entries in the window and calculate the average. Print the average to the screen. Then throw away the first entry, add the 6th entry to update your window. Calculate the average based on the 2nd to the 6th value. Keep going until you run out of values.

 As solution: the first moving average value is 36.92, then the next one is 38.476, etc.

 Modify your code only in 1 place to repeat the calculations, but with a window size of $n=15$ steps. In other words, your window size should not be *hard-coded* into your Python code.
_____no_output_____# Challenge 3

This challenge is to create a very crude integrator for an ordinary differential equation. Based on Newton's law of cooling, placing an object, like a bottle of water in a cold environment, like a fridge, the temperature of the water, $T$, changing over time $t$, can be modeled as:
$$ \dfrac{dT}{dt} = -k (T-F)$$

The fridge has a constant temperature, $F=5$°C; for this system, the value of $k = 0.08$. The equation can be rewritten as: $$ \dfrac{\Delta T}{\delta t} = -k (T - F)$$ for a short change in time, $\delta t = 2$ minutes.
$$T_{i+1} - T_i = -k (\delta t)(T_i - F)$$

which shows how the temperature at time point $i+1$ (one step in the future) is related to the temperature now, at time $i$.

You can rewrite the equation as: $$ T_{i+1} = T_i -k (\delta t)(T_i - F)$$

In a loop, show how the temperature changes over time, starting from the temperature $T_{i=0} = 25$°C. Your output should look something like this:

> At time 0 minutes the temperature is 25.0
>
> At time 2 minutes the temperature is 21.8

1. How long does it take for your water to reach the temperature of the fridge?
2. What happens if you use a different $\delta t$ value during the integration? Try a really small value, or a larger value.
3. For a more "powerful" fridge which cools quicker: do you need a bigger or smaller value of $k$?
4. How long will it take a cup of water which has just boiled to cool down?_____no_output_____# Challenge 4_____no_output_____Like in the previous challenge we want to integrate an equation, but this time for bacteria growing on a plate.

The equation for growth is

$$ \dfrac{dP}{dt} = rP $$

where $P$ is the number of bacteria in the population, and $r$ is their rate of growth [number of bacteria/minute]. Integrating this equation will show exponential growth. This is not realistic. Eventually the bacteria will run out of space and their food source. So the equation is modified:

$$ \dfrac{dP}{dt} = rP - aP^2$$
where they are limited by the factor $a$ in the equation.

The differential equation can be re-written as:
$$P_{i+1} - P_i = \left[\,rP_i  -a\,P_i^2\,\right]\delta t$$

which shows how the population at time point $i+1$ (one step in the future) is related to the population size now, at time $i$ over a short interval of time $\delta t$ minutes.  You can read more about these logistic equation models.

In a loop, show how the population changes over time, starting from an initial population of $P_{i=0} = 500$ bacteria. The growth rate for this culture is $r=0.032$ and the coefficient $a = 1.4 \times 10^{-7}$.

Your printed output should look something like this:

> At time 10 minutes there are 660 bacteria
>
> At time 20 minutes there are ___ bacteria

Try integrating over

* different durations of time
* using different step sizes of $\delta t$
* Do you get a steady population size?
* Is that ultimate population size dependent on the number of bacteria you start with?

Later on in the course we will see how to collect these follow and plot them. But looking at the number, what shape does the curve have? Is it what you expect?_____no_output_____To cover during the interactive session:

* Debugging in Spyder._____no_output_____

# IGNORE this. Execute this cell to load the notebook's style sheet.
from IPython.core.display import HTML
css_file = './images/style.css'
HTML(open(css_file, "r").read())_____no_output_____