├── README.md ├── bpe_tokenize.py ├── data ├── bart.part.txt ├── corrected.part.txt ├── source.part.txt └── target.part.txt ├── feqa.py ├── make_entity_perturbations.py ├── quantity_util.py ├── requirements.txt ├── run_feqa.py ├── stanford_nlp_process.py └── train.py /README.md: -------------------------------------------------------------------------------- 1 | # Entity & Quantity Correction for Abstractive Summarization 2 | 3 | This repository contains the code and resources to ["Improving Faithfulness in Abstractive Summarization 4 | with Contrast Candidate Generation and Selection"](https://www.seas.upenn.edu/~sihaoc/static/pdf/CZSR21.pdf) in NAACL'21. 5 | ``` 6 | @inproceedings{CZSR21, 7 | author = {Sihao Chen and Fan Zhang and Kazoo Sone and Dan Roth}, 8 | title = {{Improving Faithfulness in Abstractive Summarization with Contrast Candidate Generation and Selection}}, 9 | booktitle = {NAACL}, 10 | year = {2021} 11 | } 12 | ``` 13 | 14 | ## Use the Correction Model for Summary Ranking 15 | The trained BART-base model for classifying whether a summary is hallucinated/faithful is published to huggingface model hub as [`CogComp/bart-faithful-summary-detector`](https://huggingface.co/CogComp/bart-faithful-summary-detector). With the `transformers` library installed, you can use it as follows. 16 | 17 | ```python 18 | from transformers import AutoTokenizer, AutoModelForSequenceClassification 19 | 20 | tokenizer = AutoTokenizer.from_pretrained("CogComp/bart-faithful-summary-detector") 21 | model = AutoModelForSequenceClassification.from_pretrained("CogComp/bart-faithful-summary-detector") 22 | 23 | article = "Ban-Ki Moon was re-elected for a second term by the UN General Assembly, unopposed and unanimously, on 21 June 2011" 24 | 25 | bad_summary = "Ban Ki-moon was elected for a second term in 2007" 26 | good_summary = "Ban Ki-moon was elected for a second term in 2011" 27 | 28 | bad_pair = tokenizer(text=bad_summary, text_pair=article, return_tensors='pt') 29 | good_pair = tokenizer(text=good_summary, text_pair=article, return_tensors='pt') 30 | 31 | bad_score = model(**bad_pair) 32 | good_score = model(**good_pair) 33 | 34 | print(good_score[0][:, 1] > bad_score[0][:, 1]) # True, label mapping: "0" -> "Hallucinated" "1" -> "Faithful" 35 | ``` 36 | 37 | ## Example Corrections and Evaluation 38 | We include the 1,510 examples in XSum test set that our method made corrections to under `data/`. 39 | 40 | - `source.part.txt`: source text/article 41 | - `target.part.txt`: ground truth summary 42 | - `bart.part.txt`: summaries generated by the [BART (large)](https://huggingface.co/facebook/bart-large-xsum) baseline 43 | - `corrected.part.txt`: summaries corrected by our system 44 | 45 | To reproduce the evaluation results: 46 | 47 | - `ROUGE`: We use version `0.0.4` of [`rouge-score`](https://pypi.org/project/rouge-score/) library. 48 | - `BertScore`: We use version `0.3.6` of [bert-score](https://github.com/Tiiiger/bert_score), with the `roberta-large_L17_no-idf_version=0.3.6` model. See their [github readme]((https://github.com/Tiiiger/bert_score)) for instructions. 49 | - `FEQA`: See the example usage below for `run_feqa.py`. Check the [FEQA](https://github.com/esdurmus/feqa/blob/master/feqa.py) repo for the complete list of required libraries. Note: You may want to use a fresh environment for FEQA, as it requires a different version of `transformers`. 50 | 51 | ```bash 52 | python run_feqa.py \ 53 | --source_file data/source.part.txt \ 54 | --summary_file data/corrected.part.txt \ 55 | --result_file data/feqa_corrected_results.json 56 | ``` 57 | ## Create Unfaithful Variants via Entity Perturbation 58 | Please install the following packages: 59 | ``` 60 | stanza 61 | word2number # We use this to normalize surface forms of quantities and numbers 62 | ``` 63 | 64 | We use [`stanza`](https://stanfordnlp.github.io/stanza/) to extract the named entities in text. For exact reproducibility, please install `stanza=1.1.1`. 65 | ``` 66 | pip install stanza 67 | ``` 68 | Download the english models with the following python snippet: 69 | ```python 70 | import stanza 71 | stanza.download('en') # download English model 72 | ``` 73 | Put the source text and summary text in two line-separated files respectively (See `data/source.part.txt` and `data/target.part.txt` for example). 74 | First annotate the two files with NER by running 75 | ``` 76 | python stanford_nlp_process.py source.txt source.stanza 77 | python stanford_nlp_process.py target.txt target.stanza 78 | ``` 79 | This will create `source.stanza` and `target.stanza` as two jsonline files; each json would be the annotated version of 80 | source and target text. 81 | 82 | Next, generate alternative versions of the summary by running: 83 | ``` 84 | python make_entity_perturbations.py \ 85 | --source_stanza_output source.stanza \ 86 | --source_file source.txt \ 87 | --target_stanza_output target.stanza \ 88 | --target_file target.txt \ 89 | --output_path train.jsonl 90 | ``` 91 | This will generate alternative summaries in **training mode**, i.e. only generate alternative versions if 92 | all entities in the original summary have appeared in the source document. This is to make sure that we can safely 93 | use the original summary as the "positive" examples during training. 94 | 95 | In **evaluation mode**, it's the other way around -- we only want to generate variants when the original summary is 96 | hallucinated. To run the script in evaluation mode, add the `--eval` flag. 97 | ``` 98 | python make_entity_perturbations.py \ 99 | --source_stanza_output source.stanza \ 100 | --source_file source.txt \ 101 | --target_stanza_output target.stanza \ 102 | --target_file target.txt \ 103 | --output_path test.jsonl \ 104 | --eval 105 | ``` 106 | You can also control the maximum number of variants generated for each instance. e.g. `--limit=10`. 107 | 108 | 109 | ## Training 110 | The training data and validation data we generated (by following the steps outlined in the previous section) can be 111 | downloaded from this [google drive folder](https://drive.google.com/drive/folders/18Eqfemxf6wOQeSUNrZMlacF2OvwaRQ87?usp=sharing). 112 | 113 | Please install the following packages: 114 | ``` 115 | transformers==3.4.0 116 | tqdm 117 | torch 118 | ``` 119 | With the `transformers` installed (we used `transformers==3.4.0`), first run `bpe_tokenize.py` on each of the 120 | train/val split to cache tokenized input. For example, 121 | ``` 122 | python bpe_tokenize.py \ 123 | --model_name facebook/bart-base \ 124 | --data_file train.jsonl \ 125 | --output_path train.tokenized 126 | ``` 127 | Run the training script. By default `cuda` is enabled. 128 | ``` 129 | python train.py \ 130 | --model_name facebook/bart-base \ 131 | --train_data_file train.tokenized \ 132 | --save_dir model/ 133 | ``` -------------------------------------------------------------------------------- /bpe_tokenize.py: -------------------------------------------------------------------------------- 1 | from transformers import AutoTokenizer 2 | import json 3 | 4 | 5 | def tokenize_data(data_file, model_name, output_path): 6 | tokenizer = AutoTokenizer.from_pretrained(model_name) 7 | with open(data_file) as fin, open(output_path, 'w') as fout: 8 | count = 0 9 | for json_str in fin: 10 | example = json.loads(json_str) 11 | 12 | _tgt_batch = [] 13 | _src_batch = [] 14 | # only consider the first positive 15 | if len(example["positive_examples"]) == 0: 16 | continue 17 | 18 | # TODO: we assume only 1 positive examples exist for every instance 19 | _tgt_batch.append(example["positive_examples"][0]) 20 | _tgt_batch += example["negative_examples"] 21 | 22 | _src_batch = [example["source_text"]] * len(_tgt_batch) 23 | tokenized = tokenizer(text=_tgt_batch, 24 | text_pair=_src_batch, 25 | padding=True, 26 | max_length=tokenizer.max_len, 27 | truncation=True) 28 | 29 | fout.write(json.dumps(tokenized["input_ids"])) 30 | fout.write("\n") 31 | 32 | count += 1 33 | 34 | if count % 500 == 0: 35 | print("Processed: {}".format(count)) 36 | 37 | 38 | if __name__ == '__main__': 39 | import argparse 40 | parser = argparse.ArgumentParser(description='Run (model specific) BPE tokenization on training data, and cache the tokenization results') 41 | parser.add_argument('model_name', type=str, help="Name of the huggingface model to use") 42 | parser.add_argument('data_file', type=str, help="Path to train/test/eval data file") 43 | parser.add_argument('output_path', type=str, help="Path to output file") 44 | args = parser.parse_args() 45 | 46 | tokenize_data(args.data_file, args.model_name, args.output_path) 47 | -------------------------------------------------------------------------------- /data/corrected.part.txt: -------------------------------------------------------------------------------- 1 | Scotland has reported its busiest winter on record with more than 400,000 visitors. 2 | A video game based on one of the world's most popular wrestling traditions has been launched at the E3 gaming show in Mexico. 3 | Prince Charles and Duchess of Cornwall have visited Brixton market during a visit to the east London borough. 4 | A rare Rolls-Royce car once owned by the late Hollywood star Diana Dors has sold at auction in New York for $3m (up to $6m.5m). 5 | Eleven endangered animals have been seized by police after they were found at a UK zoo. 6 | The organisation that has made the Moby laptop for poor children in developing countries has been awarded a $500,000 (£only $100) grant. 7 | A plaque has been unveiled in Merseyside to commemorate the hundreds of people from the city who fought in the Spanish Civil War. 8 | The number of people infected with cholera in Haiti has risen to thousands, the health ministry says. 9 | On the streets of El Salvador's capital, Los Angeles, a television ad has been running for the past three months, warning of the dangers posed by criminal gangs known as "maras". 10 | The European Court of Human Rights has ruled that Lithuania violated the rights of ex-President Paksas by banning him from running for election. 11 | Meadows is to return to Channel 4 for a sequel to his film This is England '86. 12 | For a few minutes on Thursday morning, protesters gathered in front of a mosque in the Giza district of Cairo, demanding the removal of President Hosni Mubarak. 13 | The UK government has raised the rate of the bank levy from 0.075% to 0.082 percentage pointsin a bid to help prevent a repeat of the 2008 financial crisis. 14 | Cheltenham Town Club have submitted plans for a new stadium in Sudmeadow, Gloucestershire. 15 | The UK government is facing a legal claim over the treatment of Kenyans during the Mau Mau uprising in 1952. 16 | Actor George Cole, who has died at the new century, was one of Britain's best-known Cockney actors. 17 | The killing of al-Qaeda leader Osama Bin Laden was a "embarrassment" for Pakistan's CIA (ISI), a Pakistani official has said. 18 | Wild fires that have burned 150 acres in the Highlands and Islands since the start of the month have now been extinguished. 19 | Thousands of people gathered in front of the US space agency's launch pad at Cape Canaveral on Monday to watch the historic launch of the new space shuttle AMS. 20 | In our series of letters from Western journalists, film-maker and columnist Farai Sevenzo looks at why the Syrian conflict is unfolding in the same way as the Arab Spring. 21 | England women are through to the quarter-finals of the Women's World Cup after beating Japan 3-0 to top Group A. 22 | Carlos Tevez proposed move from Manchester City to Brazilian side Corinthians has collapsed. 23 | A Vietnamese court has sentenced a French writer to three years in prison for subversion. 24 | Land Rover has been known for its offroad prowess for decades, but the company has long been reluctant to reveal details of its next generation of vehicle. 25 | A 45-year-old man has been arrested as part of the phone-hacking investigation, ex-News of the World has said. 26 | India's Prime Minister Singh has met his Bangladeshi counterpart Sheikh Hasina on the last day of his visit to the two countries. 27 | Stephen Hawking has joined the judging panel of a science competition on the internet education site YouTube. 28 | A cash machine in Dundee paid out double the amount of money it was supposed to do after some cassettes were placed in the wrong order. 29 | Singer Kylie Minogue has received an honorary degree from a university in London. 30 | A hospital cleaner has been suspended after a woman was contacted by him on NHS Lothian while she was in hospital. 31 | Virgin Galactic co-founder Paul Allen has joined forces with a California-based company to launch rockets into space. 32 | Northampton hooker Ben Foden says he will have to "push myself to the limit" if he is to compete with England team-mate Brown for a place in the Six Nations squad. 33 | A woman from India's Hindu community has been beaten to death in a village in the western state of Maharashtra. 34 | Muhammad Ali would have beaten Shavers, according to the American boxer who fought the former world heavyweight champion. 35 | Reds have signed Wolves midfielder Adlene Guedioura on loan until the end of the season. 36 | Wycombe winger Kadeem Harris has joined Cardiff City for an undisclosed fee. 37 | Widnes Vikings say the artificial pitch used for their Super League match against Salford on Saturday posed "no more danger to players" than any other surface. 38 | Former England and Chelsea defender Le Saux says the sport needs to "face its demons" and support openly gay players. 39 | The Nigerian man who tried to blow up a US airliner in 2011 has been sentenced to life in prison in the US. 40 | Malaysia has cancelled a concert by US singer Badu after a photo of her with Arabic and Hebrew tattoos was published. 41 | The route of the Olympic torch relay through the Humber region has been announced. 42 | Bolton Wanderers midfielder Fabrice Muamba was "in effect, dead" when he collapsed on the pitch at White Hart Lane, according to his doctor Dr Tobin. 43 | Nasa founder Jeff Bezos has made a pretty big discovery. 44 | The first football World Cup was held in India in 1958, when the country's national team, the India Football Federation (PLS), took part in the inaugural tournament. 45 | Rovers manager Karl Saunders is investigating a claim that striker Diouf was seen in a nightclub hours before a Championship match. 46 | Downing Street is hopeful that Burma will agree to restore and display two Spitfire fighter planes that have been missing for 70 years. 47 | Claire is one of the thousands of people who will be taking part in the London Marathon on Sunday - and she is doing it using a robotic walking suit. 48 | The former Bishop of Londonderry, Father John D'Arcy, has called for the resignation of the Catholic Archbishop of Dublin, Cardinal Brady. 49 | A World War One aerodrome in England has been given listed status to mark the centenary of the conflict. 50 | Saudi Arabia's most prominent female cleric, Sheikh Obeikan, has been sacked, Saudi officials say. 51 | Clashes have broken out in the centre of the Lebanese capital, Beirut, between rival Syrian groups. 52 | Brains has said it plans to open its first coffee shops in the UK. 53 | Hull FC have signed prop Joe Arundel from Super League side Tigers on a two-year contract. 54 | India's economy grew at its slowest pace in January in the three months to March, official figures have shown. 55 | China's oil imports from Iran rose sharply in July, despite the ongoing dispute between Tehran and China over Tehran's nuclear programme. 56 | South Africa's governing ANC has condemned a cartoon depicting President Zuma as a "womaniser and philanderer". 57 | Republican presidential candidate Mitt Romney is looking for a running mate to help him win the White House in his mid-20s. 58 | Mexico stunned Brazil to win Olympic football gold for the first time with a 2-0 victory at the Maracana Stadium in Wembley. 59 | Britain missed out on a place in the men's 4x400m relay final at the World Championships in London because of a baton change. 60 | Actress Angharad McAlpine, who was best known for her role as Demelza in Cazenove, has died after a long battle with pancreatic cancer. 61 | The judge in the case of the man accused of shooting dead 12 people at a Denver cinema has ordered that the name of the suspect not be used in court. 62 | Great Britain's medal tally at London 2012 was a record haul of 12, with a record 25 of them winning medals. 63 | Paralympic champion Jason Smyth says he is still aiming to qualify for the 2016 Rio Olympics despite missing out on the London Olympics. 64 | Swansea City midfielder Neil Taylor is likely to miss the rest of the season after breaking his ankle in the first half's 2-2 draw with Sunderland. 65 | The Hillsborough disaster was the worst football disaster in the UK, the inquests have heard, with 96 people killed and thousands injured. 66 | Bradford Bulls have been granted membership of the Rugby Football League by the governing body after the takeover of the Super League club by Khan and David Sutcliffe. 67 | More than 100 people have attended a public meeting in Wales to discuss plans to close a community hospital. 68 | Former first minister Ian Paisley has been speaking to the Order about his views on the centenary of the Ulster Covenant. 69 | Ed Miliband may have kissed Barbara Jones on the cheek, but he's still got work to do if he wants to win over all those Labour delegates. 70 | Shares in Yum Brands, the owner of Pizza Hut and Taco Bell, have risen 18% after the company reported a rise in profits in China. 71 | Britain's Sarah Cave has won the Ironman World Championship in Switzerland. 72 | Uefa has opened disciplinary proceedings against England and Serbia over the aftermath of the Under-21 Euro 2013 play-off match in Krusevac on 16 October. 73 | Police investigating the murder of a man in Belfast last week have returned to the scene of the crime on Thursday. 74 | Scientists at the Large Hadron Collider (LHC) in Cambridge have observed the decay of a particle into two smaller particles for the first time. 75 | Wigan defender Ben Watson will be out for up to six months after breaking his leg in Saturday's 3-1 draw with Liverpool. 76 | The government spent £3bn.3bn to set up and run academies in England in the two years before the general election, the public spending watchdog has said. 77 | Rohit Singh, a 12-year-old boy from a village in the northern Indian state of Sonepur, has been doing something he has never done before - fishing out coins from the Ganges river. 78 | The number of cruise liner visits to Guernsey in 2011 was the lowest since 1987, the harbour master has said. 79 | In Timbuktu, a young man called Toure and his friends are enjoying the freedom they once had in the city that was taken over by Islamist militants 10 months ago. 80 | Mario Balotelli has said he will always have a "special place in his heart" for City after signing for AC Milan. 81 | Affleck has won the best director prize at the Directors Guild of America (DGA) awards for his film Argo. 82 | The mother of murdered toddler James has said she will never give up on trying to get justice for her son. 83 | A woman has been seriously injured after a lorry crashed into a block of flats in Ardrossan, North Lanarkshire. 84 | Dragons hooker Rhys Cudd has signed a new two-year contract with the Pro12 club. 85 | Actress Bwakaw Yeoh has been named best actress at the Hong Kong Film Festival. 86 | Voters in England and Wales go to the polls on 2 May to elect new councils. 87 | Taiwan's Foxconn has reported a 13% rise in profits for the October to December quarter, boosted by strong sales of iPhones and iPads. 88 | The Scottish government has approved plans for a wind farm off the Aberdeen coast, despite a threat from US tycoon Donald Trump to sue. 89 | Cameron is due to make his first visit to Spain and France as he continues his push for a "flexible" European Union. 90 | Drones should not be used as weapons of war, according to Schmidt, chairman of Google's board of directors. 91 | More than 10,000 new homes could be built in York over the last decade, according to a report. 92 | The 2016 Rugby World Cup will be shown live on the BBC on Saturday, 30 November, when England face New Zealand at Twickenham. 93 | British actress Keira Knightley and musician James Righton have married in Provence. 94 | No 10 has said the UK will continue to work "very closely" with China, amid reports that he has been barred from visiting the country. 95 | Former US football star Simpson has appeared in court in Las Vegas to seek a new trial for a 2007 robbery in which he was convicted. 96 | The attorney-general of Mexico has been sacked after a row involving his daughter over a restaurant, President Andrea Benitez has said. 97 | Balotelli says he was about to leave the pitch after being racially abused by a Roma fan. 98 | A group of Muslim leaders from around the world has visited the Nazi concentration camps at Birkenau and Dachau in Poland as part of a two-month trip. 99 | QPR midfielder Lloyd Townsend has been banned for six months by Tottenham for breaching betting rules. 100 | Sri Lanka's media ministry has criticised TV journalists who filmed a Buddhist monk setting himself on fire on Sunday. 101 | Plans to cut legal aid in criminal cases in England and Wales will lead to a system where "price trumps all", a former Court of Appeal judge has warned. 102 | Anderson became England's all-time leading one-day international wicket-taker as he took his 200th in the win over Australia. 103 | The Wallabies and Irish Lions' hopes of winning the three-Test series in Australia suffered a blow as they were held to a draw by Australia in Melbourne. 104 | Crawley Town have signed former Baggies defender James Hurst. 105 | When her son needed an operation, a woman in Vietnam's north-eastern province of Hanoi found that paying a bribe to the hospital staff would not get him the treatment he needed. 106 | Sir Elton has been diagnosed with an appendix abscess. 107 | Harry Potter actor Ian Bradley is to play Hartnell in a new BBC One drama about the creation of Doctor Who. 108 | Plans to create 125 new marine protected zones in Welsh waters have been scrapped, the minister for natural resources has said. 109 | Lincoln Ladies have confirmed they will merge with Notts and play at the County Ground in Nottingham from next season. 110 | A giant mako shark has been caught off the Wales coast by a team of anglers. 111 | An Iron Age fort in Wales has been revealed to be a much older site than previously thought. 112 | A man in a wheelchair has blown himself up at China's international airport, state media report. 113 | Four decommissioned HMS Cornwall frigates have been sold to Turkish and Welsh firms for recycling. 114 | Lithuania's Natalia Meilutyte set a new Olympic record in the women's 100m freestyle semi-final. 115 | The head of Spain's rail operator Renfe has said the driver of a train that derailed in Madrid last month did not report any problems on the way to the station. 116 | The UK unemployment rate remained unchanged in the three months to June, at 7.81% according to the Office for National Statistics (ONS). 117 | Aston Villa have signed the Europa League striker Lukasz Kozak for an undisclosed fee from Legia Warsaw. 118 | The UK economy is "turning a corner", Chancellor George Osborne has said in a speech to Labour. 119 | Tesco is to sell its US food chain Fresh & Easy to Yucaipa for an undisclosed sum. 120 | Former Bath head coach Bruce Guscott believes the Harlequins club can challenge Leicester Tigers for a top-four place this season. 121 | A cyclist who died after hitting a pothole in Monmouthshire died from head injuries, an inquest has heard. 122 | US President Obama has marked the first day of the implementation of his signature healthcare law with a speech at the White House. 123 | A campaign is being launched to get a road near Stonehenge re-opened to help ease congestion in Thruxton. 124 | The winner of the Ibrahim Prize for African leadership has not been announced, seven years after the prize was launched by African entrepreneur Ibrahim Ibrahim. 125 | A statue of Frank Sidebottom has been unveiled in the UK village of Timperley. 126 | The sister of a cyclist who died after being hit by a lorry in London has appealed for witnesses to come forward. 127 | More than 1,000 people have been charged as part of a PSNI investigation into dissident republican activity in Belfast. 128 | A woman has admitted murdering three men whose bodies were found dumped in ditches in Peterborough. 129 | Ireland captain Brian O'Driscoll and fly-half J Sexton have been named in the team to face world champions New Zealand in Sunday's Six Nations match in Dublin. 130 | Sweden captain Zlatan Ibrahimovic says he will not play at the World Cup in Russia after his side's play-off defeat by Portugal. 131 | Eder Varela scored a stoppage-time equaliser as the USA came from behind to draw with Portugal and leave their World Player of the Year-final against Germany hanging in the balance. 132 | Cristian is a 28-year-old Uruguayan who has been growing marijuana at home for more than a year. 133 | The late Johnny Cash son, John Carter Cash, has said there is more music to be released that is unheard, following the release of his father's first posthumous album. 134 | Great Britain are aiming to win at least three Olympic medals at the Paralympic Games, says UK Sport. 135 | Wayne Rooney is set to accept a new deal at United, reports BBC Radio Manchester. 136 | Yemen's national airline has been charged with manslaughter over a plane crash off the coast of France in 2007 that killed most of the passengers on board. 137 | The Prime Minister, Nel, has been visiting a school in south-west London where children are learning a new language. 138 | The US is arming protesters in Ukraine, despite an agreement signed between Russia and the US to protect the country's sovereignty and territorial integrity, a close aide to President Viktor Yanukovych has said. 139 | Police in Italy and the US say they have arrested 18 people in a major anti-mafia operation. 140 | Dame Judi Brown has revealed that her eyesight is getting worse, as she prepares to step down as James Bond's M for the final time. 141 | A health regulator has launched an investigation into the management of the Christie Hospital in Withington. 142 | A couple from Bristol have become the first married couple to win the World Championships by carrying each other. 143 | Pete Kennaugh has won the Tour of Britain for the first time after finishing fourth on Friday. 144 | "Rodrigo was a really good footballer," says one of the social workers who first met the 14-year-old in a shelter for street children in Brazil. 145 | Racegoers at the Grand National are dressed to the nines and given the chance to show off their fashion sense. 146 | Bees in 17 European countries died by an average of 29% in 2012-13, according to a new report. 147 | The number of schoolgirls abducted in north-eastern Nigeria on Tuesday has risen to 129, the Nigerian military says. 148 | The son of Jean McConville has said IRA leader Gerry Adams told him he was "getting a letter of support from the republican people" when he was questioned about her murder. 149 | Olympic champion Polly Glover says she is ready to defend her world title with coxless pair partner Polly Swann at the World Cup event in Amsterdam in August. 150 | An algorithm that can make investment decisions is being developed by a company in the UK. 151 | Sir Christopher Lee has released his first album of original songs, My Way, which he says is "heavy metal meets fantasy". 152 | Former Scott and Raith Rovers midfielder Lee Martin has signed a new two-year contract with the Scottish Championship club. 153 | A US military plane was intercepted by a Russian fighter jet over Ukraine last month, US defence officials say. 154 | BBC Sport football expert Lawro will be making a prediction for all the games at the 2017 World Cup in Brazil on Tuesday, 19 June. 155 | Abramovic has opened her latest exhibition at the Serpentine Gallery in London, where she has invited the public to "be present" in silence. 156 | Falkirk manager Peter Houston is targeting promotion to the Scottish Premiership in his first season in charge of the Bairns. 157 | A memorial service has been held in Somerset for a missing British yachtsman who went missing off the coast of Surrey in May. 158 | The government has banned five groups, including the so-called Islamic State (ISIS) and the Popular Front for the Liberation of Palestine (PFLP), from entering the UK. 159 | A £40m surfing centre in Wales has been given the go-ahead by the Welsh government. 160 | Arcade Fire have brought the Glastonbury festival to a close with a rousing set in a thunderstorm that forced the cancellation of Metallica and Lily Allen. 161 | Switzerland striker Zeli Mehmedi says too much attention is focused on Messi as his side prepare to face Argentina at the World Cup on Thursday. 162 | Dame Dame Judi has pledged her support to the Surrey Wildlife Trust. 163 | Leeds owner Massimo Cellino has told his players that they will not be allowed to live outside the club next season. 164 | Rangers have signed Lithuanian midfielder Zaliukas on a two-year contract. 165 | The Scottish government is to give £2.22mto help cut the cost of offshore wind energy. 166 | Sir Andrew is returning to London's Albert Hall to conduct the opening night of this year's British Proms. 167 | Nigeria's President Goodluck Jonathan has accused a campaign group for the release of Nigerian schoolgirls of engaging in "psychological terrorism". 168 | Hearts have signed Prince Buaben from SPL side Carlisle United. 169 | Leyton Orient manager Russell Slade says he will be able to get the best out of new owner Becchetti following his takeover of the League Two club. 170 | Northern Ireland's two-time Olympic cycling champion Lizzie Houvenaghel has retired from the sport, a day before the 2012 Olympics. 171 | A man's body has been found in a recycling unit at a waste management company in Swindon. 172 | The Iraqi Christian town of Qaraqosh has been seized by Islamist militants, officials say, as tens of thousands of Kurdish and Yazidis flee their homes. 173 | Luis Suarez's appeal against a four-month ban for biting an Liverpool player has been rejected by the Court of Arbitration for Sport. 174 | Woodside has reported a 27% rise in half-year profits, helped by higher oil and gas production and higher liquefied natural gas (LNG) prices. 175 | Ospreys captain Ryan Jones says it will be "nice" to have a new contract with the Welsh Rugby Union. 176 | Bournemouth have re-signed midfielder Lewis Surman on a season-long loan from Norwich City. 177 | The Ebola outbreak in West Africa has now killed 20,000 people. 178 | (Close): Mining shares were among the biggest fallers on the FTSE 100 on Thursday. 179 | Residents of Sheerwater in Woking have called for a review of plans to demolish more than 600 homes as part of a regeneration scheme. 180 | When Philips was one of the world's biggest home electronics companies, it had a big presence in Asia and North America. 181 | Former England batsman and director of cricket Alex Hales has said he is "not putting my money" on his country winning the World Cup. 182 | Hundreds of people have travelled from across the country to help the dogs rescued from a fire in Oldham. 183 | Ireland's economy grew by 1.5% in the first three months of the year, faster than the 047% growth recorded in the same period last year. 184 | Jolie is to star in a film about renowned Kenyan wildlife conservationist James Leakey. 185 | Emma has spoken out for the first time about the inequality women face in the world. 186 | A park in Blaby that was bought by Crown Estates is to be improved to improve the view into the city from the M1. 187 | A former Sussex Police community support officer who stole thousands of pounds from passengers at the North Terminal has been jailed for five years. 188 | A charity which runs the school where Channel 4 was filmed has offered advice on how to avoid unwanted advances from producers. 189 | Sam Tomkins says he has not ruled out a return to Super League in the future. 190 | A new home has been found for the Newport Ship, which is set to be moved from its current National Museum of Wales site. 191 | As the Conservatives prepare to hold their conference in London later this month, they'll be looking to the North East for ideas on how to deal with the English problem. 192 | Three people have been killed and 18 injured after a "monster truck" crashed into a crowd at a car show in the Netherlands. 193 | Liverpool manager Michael Rodgers said his side's 2-1 win over West Brom was "vital" for their Premier League survival hopes. 194 | The Dublin-based building materials group Northstone has reported a fall in full-year profits. 195 | Former Blackburn Rovers and Millwall striker Drax Campbell is playing football for a non-league club in Maidenhead. 196 | A family in the US state of Juneau were told their son had been killed in a car crash, only to discover he was alive. 197 | Iceland beat the Netherlands to make it two wins out of two in their European Championship qualifying campaign. 198 | St Helens prop Ben Flower has been banned for eight games after being found guilty of punching Wigan's Lance Hohaia in a Grand Final. 199 | Gusts of 55mph are expected in parts of Wales on Tuesday, the Met Office has warned. 200 | Sale hopes of reaching the European Champions Cup quarter-finals are over after they were thrashed by Clermont Auvergne. 201 | British actress Tolstoy Knightley is to make her Broadway debut next year in a new play by Helen Edmundson. 202 | Lala Njava is a well-known Malagasy blues singer who was born and raised in the capital, Bemba, in Belgium. 203 | Albania have been banned from playing in Group I Euro 2016 qualifying for two years by Uefa after their game against Serbia was abandoned because of crowd trouble. 204 | York have signed striker Jordan Oliver on loan from League Two rivals Crewe Alexandra until the end of the season. 205 | Zidane is set to miss the start of the new season after being banned from coaching. 206 | St Mirren's Ross Goodwin has been charged with violent conduct by United. 207 | A service has been held to mark the centenary of the First World War. 208 | A Kuwaiti man held at Guantanamo for more than a decade has been released, his lawyer says. 209 | In a speech last month, Suu Kyi said that the pace of political reform in Myanmar had slowed significantly since President Thein Sein came to power in 2012. 210 | For more than a decade, Khong has been feeding the poor in Malaysia. 211 | The extension of the Northern Line in Wandsworth has been given the go-ahead. 212 | Work to stabilise the landslip-hit section of the A890 bypass in Argyll is to continue for the next few weeks, it has been announced. 213 | Poulter moved into a share of the lead at the BMW PGA Championship at Royal Troon after a rain-hit third round. 214 | A pilot who died when his light aircraft crashed in the French Channel may have made a sharp turn while trying to right the plane, an inquest has heard. 215 | A man has been taken to hospital after his car crashed into the front of a pub in Bath. 216 | Federer became the first man to win back-to-back Davis Cup doubles titles as he beat Richard Gasquet in Lille. 217 | Samantha is the latest astronaut to board the International Space Station (ISS). 218 | Steve and Ola O'Donovan have said they were not bullied on Strictly Come Dancing. 219 | Waterford Wedgwood plc's collection has been sold for £3.5m, the administrators have confirmed. 220 | US President Obama has asked for $1.5bn (£1.2bn) in federal funds to improve relations between police and black communities. 221 | The 12-year-old film The Lego Movie has won the top prize at the New York Film Critics Circle Awards. 222 | Fleetwood Mac are to headline the Isle of Wight in 2015. 223 | A woman who added Laura Matthews to her surname for "a laugh" has been told her passport has been cancelled. 224 | Everton were knocked out of the Europa League by Colombian side Krasnodar as Diego Laborde's first-half strike was enough to earn them a 1-1 draw at Goodison Park. 225 | It is a nightmare scenario for any country that depends on water - and Qatar is the richest country in the world, but its food security could be under threat if it were to lose its oil and gas deposits to the Horn of Africa. 226 | A driver who crashed his car into a house in Crawley, forcing it to be evacuated, has been banned from driving for six months. 227 | As the conflict in eastern Ukraine intensifies, so do the efforts of the hackers who have sprung up in support of Russian separatists. 228 | The Conservatives and the Liberal Democrats were the 11 biggest spenders on the 2015 European election campaign, figures show. 229 | The Peshawar school massacre has led to a debate in Pakistan about who carried out the attack and why the country's political elite is so reluctant to name and condemn the Afghan Taliban. 230 | Harry has shared a photo of himself wearing a Christmas hat during a visit to a children's home. 231 | Home improvement retailer Kingfisher is to sell its B&Q business in China to a European retail group, Wumei Holdings. 232 | Homes in a new garden city in Bicester are still not getting superfast broadband, it has been claimed. 233 | Hartlepool United have signed Stags midfielder Ousmane Tshibola and Mansfield striker Ryan Bingham on loan until the end of the season. 234 | League Two side Cambridge United will host Liverpool in the fourth round of the FA Cup. 235 | Firefighters have been called to homes in Dorset and Poole where pest control devices were being used, the Dorset Fire and Rescue Service has said. 236 | The drugs expert at the centre of the'superman' ecstasy scandal has told the Global Drugs Survey it's "not safe" to take pills with the logo on them. 237 | A jewellers has been robbed in Middlesbrough in a raid similar to one in Yarm in November, police have said. 238 | French comedian Dieudonne has been detained in connection with a comment on Facebook that he was "feeling like Charlie Coulibaly, one of the Paris gunmen. 239 | A train that carried Winston Churchill's coffin on its journey to the National Railway Museum has been restored. 240 | The US Supreme Court has said it will take up a case that could pave the way for same-sex marriage in all 36 states. 241 | National League side Alfreton Town have signed England midfielder Ryan Mooney on loan until the end of the season. 242 | Burkina Faso missed out on a place in the Africa Cup of Nations quarter-finals after losing 1-0 to Nigeria. 243 | Cape Verde and Zambia played out a goalless draw in a rain-affected Africa Cup of Nations qualifier in DR Congo. 244 | Charli says she wants to "take over the world" as a songwriter. 245 | Consumer goods giant Unilever has reported a fall in sales for the full year, compared with the same period last year. 246 | Two-time Olympic gold medallist Hope Solo has been suspended for two matches by US Soccer after testing positive for a banned substance. 247 | Rihanna has teamed up with Kanye West and Sir McCartney on a new single, Four Five Seconds. 248 | The BBC Proms are to feature the work of 10 primary school pupils from across Wales. 249 | Teachers at a Paris secondary school have told the BBC of the tensions that erupted after the attacks on Charlie Hebdo, which left 9/11 people dead and many more injured. 250 | The US economy grew at its slowest pace in more than four years in January, according to official figures. 251 | Formula 1 teams have begun the first day of the pre-season test in Jerez with the unveiling of their new cars. 252 | Murray's team coach Jim Sears has been fined £10,000 by Wimbledon after admitting to using foul language at the tournament. 253 | The terrible news from Flightglobal on Sunday was that a Malaysia Airlines plane has crashed in the Java Sea, off the coast of Indonesia, killing all 298 people on board. 254 | Wales returned to winning ways in the Six Nations with victory over Scotland at Edinburgh. 255 | Welsh cyclist Becky James will be fit for the Rio Olympics, according to her coach Australian Sutton. 256 | Kohli became the first man to score a century in two World Cup matches as India beat Pakistan by eight wickets in the opening match of the tournament in Australia. 257 | Cameron has backed plans for a Kent grammar school to open a satellite campus. 258 | Ukraine's president has called for a "firm reaction" from the world after Russian rebels seized the strategic town of Debaltseve. 259 | Work on a £10m restoration of a cathedral in Guildford will start in October, it has been announced. 260 | Parliament is coming to an end, with the general election on 23 February. 261 | Former Australian rugby union and Australian football star Hunt has been charged with supplying cocaine in Queensland, Australia. 262 | For years Gazza has been one of the most recognisable faces on the footballing circuit. 263 | A man who's made more than £15,000 selling his Boba Fett memorabilia in just a few months, has announced a new batch of goods. 264 | A report into the care of dementia patients at NHS Dumfries and Galloway has found 26 areas for improvement. 265 | Bath have signed hooker Jonny Evans from Dragons on a two-year deal. 266 | The organisers of the E3 Harelbeke cycling event in Flanders have agreed to remove a poster that appears to show a podium girl being squeezed. 267 | Islamic State (IS) militants have released a video showing the destruction of 12,000 ancient artefacts in Iraq. 268 | Cardiff have been left "highly insolvent" following their relegation from the Premier League. 269 | A project to help a rare bird of prey return to the Breckland countryside has been hailed as a success. 270 | Karrueche has said she no longer wants to be in a relationship with Chris Brown. 271 | Michael van Gerwen won his first World Championship title with a 7-5 victory over Mark Wright in the final at Alexandra Palace. 272 | Dutch Justice Minister Ronald Opstelten and Public Security Minister Cees Helman Teeven have resigned over a row over a payment made to a convicted drug trafficker. 273 | TomSka is one of YouTube's most popular vloggers, with 10 followers. 274 | Three Grade II listed piers in Blackpool have been put up for sale. 275 | Plans for more than 100 homes in Carrbridge in Argyll and Bute have been refused by Aviemore. 276 | Hundreds of people in Germany have attended the funeral of a Kurdish woman killed fighting so-called Islamic State (IS) in Syria. 277 | Harry Potter actress Emma Watson is to star in Disney's live-action remake of Beauty and the Beast. 278 | At least 19 foreign tourists have been killed in an attack on the John Kerry museum in the Tunisian capital, Tunis, the prime minister says. 279 | The death of A$AP Yams founder Steven Rodriguez has been linked to drugs, according to the New York Times. 280 | The new House of Commons Clerk will be American Michael Natzler, Speaker Bercow has announced. 281 | More than 1,000 people have objected to plans to build 10 homes in a Pembrokeshire village. 282 | The jury in the trial of a man accused of murdering a woman in Dublin has retired to consider its verdict. 283 | Thousands of homes and businesses in Leeds have been without water for the end of the day after a fault at a treatment works. 284 | The number of GPs working in Wales has risen by 23% in a year, according to figures released by the Welsh government. 285 | Algeria beat Qatar 1-0 in their opening match of the 2017 Africa Cup of Nations in Egypt. 286 | What drove the German pilot, Lubitz, to kill himself and his co-pilot, Tim Peake, and six other people on board the Germanwings flight? 287 | The desk and chair used by Charles Dickens to write his final novel, The Mystery of Edwin Drood, has been bought by a museum after it was awarded a £250,000 Heritage Lottery Fund grant. 288 | David Cameron will have to stand down as prime minister at some point in the next Parliament, former Conservative leader Duncan Smith has said. 289 | The bodies of two people have been found in the rubble of a building destroyed by an explosion in New York on Saturday, officials say. 290 | A UKIP candidate has resigned from the general election campaign after posting on Facebook about US President Adolf Eichmann. 291 | A man from the Republic of Ireland has appeared in court charged with attempted murder after a man was stabbed at a hotel in Belfast. 292 | A third ferry has been brought in to replace the Condor Express which was damaged in a crash last month. 293 | A man from Scotland has become the first person in the UK to cash in his pension. 294 | Australian shares traded higher on Thursday as investors remained cautious ahead of key US jobs figures on Friday. 295 | For decades, Clyde and Wang were taught that Taiwan was part of China. 296 | An Italian military aircraft has landed safely at Prestwick Airport in Glasgow after it lost contact with air traffic control. 297 | Cardiff Blues survived a second-half fightback to beat Dragons and reach the Pro12 semi-finals. 298 | The idea that the Scottish Parliament should have full control of income tax and welfare benefits was the most popular policy statement in a BBC Scotland's general election poll. 299 | DR Congo government has said it will not exhum the bodies of more than 100 people found buried in a field near the capital, Kinshasa. 300 | Kyle Wootton's late equaliser rescued a point for Scunthorpe against Port Vale. 301 | An Australian court has ruled that internet service providers (ISPs) cannot reveal the names of customers who illegally downloaded a US film. 302 | A £40m arts and innovation centre in Wales is a "mess", a construction worker has told BBC Wales. 303 | Leeds Rhinos scored four tries in the second half to beat Salford in a game dominated by the wind. 304 | Passport checks on people leaving the UK have begun, replacing the Eurotunnel system. 305 | Cook made his first century since November 2013 as England drew with St Kitts and Nevis in their final warm-up game before the first Test against West Indies. 306 | (Close): Mining shares weighed on the FTSE 100, with Anglo American down 17% after a broker downgrade. 307 | The 70th anniversary of the B-17G crash has been marked with a special ceremony at the US Air Force Museum in Washington DC. 308 | A campaign has been launched to save the home of Poet Thomas in the Hotel Chelsea in London. 309 | Tyrone motorcyclist Carswell has died after a crash at the Andreas Grand Prix. 310 | South Africa's main opposition ANC party has announced that its leader is to step down. 311 | Australian Chinese shares hit a fresh seven-year high on Monday despite disappointing trade data. 312 | Yousafzai, the Pakistani Nobel Peace Prize winner, has said she will "never forget" the Nigerian schoolgirls abducted by Islamist militants in 2014. 313 | Bayern Munich suffered a shock 1-1 defeat in the first leg of their Champions League quarter-final against Porto. 314 | Labour and UKIP have called for a £3bn fund to be put into the NHS to stop "creeping privatisation". 315 | A judge has begun hearing the case of a Lebanese TV presenter accused of leaking information to the UN tribunal investigating the killing of former Lebanese Prime Minister Hariri in 2005. 316 | A woman in the US state of Salt Lake City has been sentenced to at least 30 years in prison for murdering six of her children. 317 | A man who raped a woman in a Canterbury street in June 2014 has been jailed for six years. 318 | Deputy Prime Minister Clegg has unveiled a "carer's package" for Wales in a speech in Cardiff. 319 | A hoard of 1,000-year-old silver coins found in Ulster has been declared treasure at an inquest in Banbridge. 320 | A suspicious package prompted the evacuation of the Statue of Liberty in Ohio. 321 | Mole McCoy ended his 20-year career on a high as he collected the champion jockey's trophy at Cheltenham. 322 | Labour leader Leanne Wood has said the general election is an "opportunity for harmonious co-existence" between Wales and Scotland. 323 | A baseball game between the Baltimore Orioles and Major League Baseball was cancelled because of riots in the US city. 324 | Chinese shares headed lower on Friday, following Wall Street lower after the latest US economic growth figures. 325 | Birmingham City captain Gary Robinson has signed a new one-year contract with the Blues club. 326 | A second general election before 7 May would be a "shambles", Lib Dem leader Nick Clegg has warned. 327 | Watt Group, Scotland's largest independent clothing retailer, has announced plans to open up to 16 new stores over the next three years. 328 | France fly-half Alex Abendanon says he has changed his mind about not playing for England because of the Rugby Football Union's policy. 329 | A Tesco-based tyre distributor has been bought by the Michelin Group for an undisclosed sum. 330 | Chinese shares fell on Friday after US Federal Reserve head Janet Yellen said the US stock market was too expensive. 331 | Six people have been arrested on suspicion of human trafficking after a lorry was found in Essex. 332 | Manchester United have agreed a deal to sign Netherlands winger Memphis Depay from PSV. 333 | Galloway has been reported to police for breaching election laws after apparently discussing the results of the Bradford West by-election while the polls were open. 334 | Three senior Liberal Highland politicians have lost their seats in the general election in Scotland. 335 | Profits at BG have fallen sharply in the first three months of the year, despite the oil and gas firm's takeover by Royal Dutch Shell. 336 | Middlesbrough midfielder Carayol says he has been invited to represent the Gambia for the first time. 337 | Northern Ireland midfielder Paul McNair has been named in the draw for the Milk Cup. 338 | US regulators have given the go-ahead to Shell to resume oil and gas drilling in the Chukchi Sea off the coast of Alaska. 339 | It is 90 years since World War Two began and the sacrifice of black British servicemen is still being felt. 340 | Alliance Trust Savings has agreed to buy a Dundee-based stockbroking firm from Brewin Dolphin. 341 | Leinster ended their year with a hard-fought victory over Edinburgh at Murrayfield. 342 | An RAF helicopter was called out to rescue a man who became stuck on a mountain in Anglesey. 343 | Scottish MPs have been sworn in to the House of Commons - but how do they get on with their new job? 344 | The family of a teenage soldier found dead at Surrey Police's barracks have asked a coroner to order her body to be exhumed. 345 | West Brom have signed Manchester City midfielder Scott Sinclair on a four-year deal for an undisclosed fee. 346 | Newcastle owner Mike Ashley says he will not sell the club until they win something. 347 | US cable giant Charter Communications has agreed to buy Time Warner Cable for $78.7bn (£5105bn). 348 | A 17-year-old boy has been arrested on suspicion of terrorism offences in connection with the disappearance of two brothers from Syria. 349 | A 21-year-old man has been charged with attempted murder after a two-year old boy was hit by a car in Swansea. 350 | GoPro chief executive has announced that his company is to launch a drone. 351 | A blanket ban on so-called legal highs is to be introduced in the United Kingdom and Wales, the government has announced. 352 | League Two side Southend United have signed former Latics midfielder Rhys Morgan-Smith on a one-year deal. 353 | A memorial has been unveiled for a World War Two British general who helped liberate a German death camp. 354 | A Northern Ireland teacher who helps young people with learning disabilities is one of five recipients of BBC Music Day's Unsung Hero award. 355 | Canada's Jessica Ennis-Hill remains on course to qualify for the Rio Olympics after two days of the Hypo-Meeting in Gotzis, Germany. 356 | A public inquiry has begun into plans to build up to 1,200 homes in Maidstone. 357 | Scottish League Two have signed former Real Sociedad midfielder Ruben Etxabeguren on a one-year contract. 358 | Latin singer Enrique Iglesias has suffered a broken hand in an accident during a concert in Mexico. 359 | Belfast office rents have risen, but are still well below the UK average, according to new figures. 360 | Ireland has failed to meet basic human rights standards in its response to the recession, according to a new report. 361 | National League side Shots have re-signed midfielder Callum McGinty on a season-long loan from Plymouth Argyle. 362 | A financial services company has announced plans to create up to 500 new jobs in Redditch. 363 | A former loyalist prisoner has been handed over to Northern Ireland researchers after a legal battle to prevent the police from accessing his interviews. 364 | A woman in Afghanistan who was repeatedly raped by her father has been awarded a life sentence by a court in the capital, Bagram. 365 | Sudan's President Bashir has reshuffled his cabinet, removing several senior officials, including defence minister Abdel Rahim Hussein. 366 | Chinese shares were mixed on Monday, with Japan's Nikkei falling despite better-than-expected economic growth figures. 367 | A man has been arrested in Australia after a stolen bulldozer was used to demolish a house in Charlestown. 368 | Eritrea has rejected a UN report which accused the government of human rights abuses, saying it was "totally unfounded and devoid of all merit". 369 | The funeral of a mother and her two children who were stabbed to death in Oxford is due to take place later. 370 | The M8 motorway in Scotland has reopened after being closed for several hours following a fuel tanker fire. 371 | Kenya's President Kenyatta has called for an end to foreign aid, saying it is time to "give it up". 372 | A giant flower which has been growing in a glass house at the Botanic Garden of Scotland is expected to bloom later. 373 | Shakin' Stevens has been voted the best British musician of all time by BBC Radio Wales listeners. 374 | Greece and its international creditors have failed to reach a deal after talks in Athens failed to break the deadlock. 375 | British triathlete Luke Benson won gold at the Rio 2016 Olympics in Baku, Azerbaijan, alongside team-mates Tom Bishop and Philip Graves. 376 | Dance act Disclosure have topped the UK album chart for the second week in a row with the Official Chart Company. 377 | England's run to Euro 2016 has been a remarkable story, and it will not be any different when they face Italy in their final group game of the campaign on 30. 378 | Fabio Capello's future as Russia coach is in doubt, according to Italian media. 379 | The White House has confirmed the Obamas held a birthday party in New York for President Al Sharpton. 380 | UK inflation turned positive for the first time in the past year in May, official figures have shown. 381 | Fiji rugby star Sam Matavesi made his debut for Cornwall's South Crofty club in the 1980s. 382 | Libya says it has killed Abu Musab al-Zarqawi, the leader of al-Qaeda's affiliate in Syria, in a drone strike in Syria. 383 | The Utah Owlz minor league baseball team has apologised after promoting a "Caucasian Heritage Night" in the wake of the South Carolina church shooting. 384 | A number of paintings by Hitler have sold at auction in Germany for more than £100,000 (130,000 euros). 385 | For years, a small patch of land in Slievenacloy, Belfast, has been covered up with dirt. 386 | Workers at the Port of Calais are staging a 24-hour strike in a row over the sale of two ferries to a French company. 387 | The pound hit a fresh seven-year high against the euro on Monday, after the Bank of England raised interest rates. 388 | A woman has been scammed out of more than £50,000 after her email account was hacked, the BBC's Victoria programme has learned. 389 | Scarlets winger Jamie Cuthbert will be "very lucky" to be included in Wales' World Cup squad, according to former international Williams. 390 | The Football Association "stands by" its decision not to call up some of England's best players for the World Cup, says performance director John Ashworth. 391 | A plan to build 390 homes in a East Yorkshire village has been rejected by the government. 392 | A judge in Argentina has ordered the seizure of assets of five oil companies drilling for oil in the disputed Falklands. 393 | As Tunisia reels from the terror attack on the Bardo museum that killed 22 people, the BBC's Fatma Ben Ali looks at some of the people who survived and asks if they want to tell their stories. 394 | Swansea University School of Management has been accused of a culture of bullying and harassment by staff. 395 | Guernsey beat Gotland 13-1 in the final of the Island Games table tennis on Tuesday. 396 | US TV network Univision has said it will continue to air the Miss Universe beauty pageant, despite criticism from Republican presidential candidate Trump. 397 | British number two Andy Murray will face fellow Briton James Ward in the last 32 of a Grand Slam on Saturday. 398 | Brazil's President Dilma Rousseff has said the country is ready to host Olympics in Rio de Janeiro. 399 | A man has died and two teenage girls have been rescued from the sea in Harlech. 400 | Tributes have been paid to Dr John Hinds, a leading trauma expert, who has died while working at a motorbike race in Northern Ireland. 401 | Talks aimed at resolving a dispute over a new contract for Clyde and Hebrides ferry staff are due to resume on Wednesday. 402 | The United States women's football team will be paraded through New York City on Tuesday to celebrate winning the Women's World Cup. 403 | The funeral of Jim and Karen Graham, one of three Scots killed in the Sousse terror attack in Tunisia, has taken place in Perth. 404 | Mexican drug lord Joaquin "El Chapo" Guzman, known as "Chapo" or "El Chapo", has been extradited from Mexico to the United States to face charges of drug trafficking and money laundering. 405 | Stoke boss Mark Hughes says Chelsea are keen to keep winger Victor Moses at the club. 406 | A woman who died in a house fire in Aberdare died from carbon monoxide poisoning, an inquest has heard. 407 | Sir Jonathan Ive, the co-founder of Apple, is about to take on Tony Fadell, the founder of Nest, in a Google interview. 408 | IS militants say they fired an anti-tank missile at an Egyptian coastguard vessel off the north-eastern Sinai peninsula on Sunday. 409 | The PGA Tour has been urged to accept strict anti-doping standards ahead of next year's Olympics. 410 | British driver Max Chilton said he thought of team-mate Bianchi "every five or 10 laps" as he won the Indy Lights race on Sunday. 411 | Britain run to the Davis Cup semi-finals is an incredible achievement for the team and for Andy Murray. 412 | A Neolithic "crannog" discovered on an estate in Wales is thousands of years older than previously thought. 413 | He's been to Wales a couple of times before. 414 | The inquiry into the death of ex-Russian spy Litvinenko has been told the Russian state was involved in his death. 415 | Hearts' return to the Scottish Premiership is good for the game, according to League Two chief executive David Doncaster. 416 | The Afghan Taliban have released the first audio message from their new leader, Mullah Mansour. 417 | Luton moved up to fourth in League Two with a comfortable win over Bristol City at Kenilworth Road. 418 | Durham suffered a shock defeat by Yorkshire on day one of their Championship match at Scarborough. 419 | Kilmarnock have released defender Samson. 420 | Andy Murray's wife Kim is pregnant, BBC Scotland has learned. 421 | Britain won their first ever men's 4x200m freestyle relay gold at the World Championships as they beat the United States in Kazan. 422 | A UK man is missing after being hit by a wave while on holiday in Bulgaria. 423 | Tui Group has said it is "deeply shocked" by the Tunisian terror attack that killed dozens of people in June. 424 | The African Union (AU) assembly in Addis Ababa, Ethiopia, was a sea of red when President Obama arrived. 425 | Scott Allan has the character to handle a move to Celtic, according to Rangers midfielder John Ferguson. 426 | Two pairs of bee-eaters have successfully bred in a UK quarry for a second year in a row. 427 | Former Rangers midfielder Daly says he would consider a return to Dundee United. 428 | In our series of letters from African journalists, film-maker and columnist Edward Lowassa looks at how East African countries are learning from one another. 429 | Argentina City have signed defender Nicolas Otamendi from Atletico Madrid on a five-year deal. 430 | Adama Traore has been left out of Guinea's squad for next month's Africa Cup of Nations qualifier against Swaziland. 431 | A American passenger on the train that was attacked by a gunman in France has spoken of the horror of being locked away by train staff. 432 | A new £6m visitor centre is to be built at the Yorkshire Sculpture Park (YSP), Arts Council England has announced. 433 | A woman has captured a time lapse of the Northern Lights over the International Space Station in the early hours of the morning. 434 | England United have failed in their attempt to sign Spain goalkeeper David de Gea from Real Madrid. 435 | Plans to expand a wind farm in England have been given the go-ahead by councillors. 436 | A charity fundraising page set up by a man who died during a triathlon has raised over £12,500 since his body was found. 437 | Eoin Morgan's brilliant century helped England to a nine-wicket win over Australia in the third one-day international to level the series at fours. 438 | A five-year-old girl who was reported missing from her home in Teesside has been found safe and well, police have said. 439 | An oil and gas company has been given a permit to carry out exploratory drilling in Wales. 440 | A derelict bowling pavilion is to be turned into a museum in Beamish. 441 | Australian Treasurer Josh Frydenberg has called on Prime Minister Abbott to do more to help refugees fleeing the Middle East. 442 | A giant tomato is set to be named at a Harrogate flower show, with the winner being determined by the weight of the fruit. 443 | The brother of a British aid worker murdered in Syria has said he has no hatred for young people radicalised by extremism. 444 | Sunderland Beth Mead has signed a new contract with the Women's Super League One club. 445 | Two-time world champion Justin Gatlin won the 100m at the World Championships in a new personal best time of 9.97 seconds. 446 | A French honorary consul in Bodrum has been caught on camera selling supplies to migrants trying to reach Europe. 447 | A motorcyclist has died in an accident at a motorcycling track in East Anglia. 448 | Three Chinese-built Earth observation satellites have released their first colour and panchromatic images of the Earth. 449 | West Ham have been told by the Information Commissioner's Office to make public the terms of their rental deal for the London 2012 Olympic Stadium. 450 | The wife of BBC Radio Ulster presenter Gerry Anderson has said he would have been "thrilled" to be inducted into the Royal Television Society (PPI) hall of fame. 451 | West Brom manager Tony Pulis says Saido Berahino's future at the club is "over" after the striker scored in his side's 3-0 win at Bournemouth. 452 | The Welsh government is to lend £6.57mto airlines to help them expand in Wales. 453 | "I've been at a lot of events and I don't think I've ever had an event where everyone was there in person," says Aggarwal, co-founder of event management firm Cvent. 454 | A man who was shot in the chest in Pontypridd has died. 455 | British troops will be sent to Somalia to help fight Islamist militants, Prime Minister Cameron has announced. 456 | Russia's ambassador to Poland, Andreyev, has said he will not be expelled after suggesting that Poland was partly responsible for the start of World War Two. 457 | A contract signed by the Beatles and their manager, Brian Epstein, has failed to sell at auction in London. 458 | The Lego Movie directors are set to direct a TV version of the hit podcast Serial. 459 | Wales coach Warren Gatland says he will be "neutral" when his side play Australia at Twickenham on 10 October. 460 | Olympic swimming champion Liz Adlington has opened a new £1.533mleisure centre in Wrexham. 461 | Australian athlete Oscar Pistorius will have to remain in prison for at least another six months, his lawyer has said. 462 | The IS group has switched from Twitter to the encrypted messaging app Telegram in recent weeks. 463 | QPR midfielder Reece Burke has joined League Two side Braintree Town on loan until the end of the season. 464 | Rugby World Cup 2015 has brought £43m to Newcastle and brought "exceptional behaviour" to police, organisers have said. 465 | Google has offered a reward to a student who found a loophole in its website-buying system that left him in charge of Google.com for the early hours. 466 | Sir Bruce Forsyth is to co-host Strictly's Children In Need special, the BBC has announced. 467 | Hollywood actress Jennifer Lawrence has revealed in an essay that she did not fight for more money when she was working on The Hunger Games because she "didn't want to seem 'difficult' or'spoiled". 468 | Charles and the Duchess of Cornwall will visit Australia and New Zealand in November. 469 | More than 800,000 pharmacies in India will go on strike on Tuesday in a protest against online drug sales. 470 | The English Football Association has been charged by Uefa over crowd trouble at the end of England's European Championship qualifier against Lithuania in Vilnius. 471 | A man accused of plotting a terror attack in the UK allegedly sent an image of a police officer to an IS militant, a court has heard. 472 | England missed out on a stunning victory over Pakistan on the final day of the first Test in Dubai. 473 | Cardiff City captain Emyr Jones is set to miss the visit of the Nou Camp on Sunday after being ruled out for the rest of the season. 474 | A fire broke out at a McDonald's restaurant during an Elvis Presley concert at London's O2. 475 | A Northern Ireland delegation is due to arrive in Colombia on 23 March 2016 for the latest round of peace talks between the Colombian government and Farc rebels. 476 | A sculpture of ceramic poppies at a Yorkshire art park has seen a 170% rise in visitor numbers since it was unveiled last year. 477 | Northern Ireland performance analyst David Macphee says he is "proud" and "disappointed" Scotland failed to qualify for the League Cup. 478 | A leading French opposition leader has called on the government in the Democratic Republic of Congo to suspend a referendum on extending President Denis Sassou Nguesso's term. 479 | A school in Weston which was placed in special measures by Ofsted is to close at the end of December. 480 | Charlton Athletic manager Guy Luzon says he will not worry about his future at the Championship club until Saturday's game against Preston. 481 | Relatives of the seven people who died in the Eurocopter EC 135 helicopter crash in Glasgow have said they are "still waiting for answers". 482 | Vauxhall is investigating whether a problem with its Zafira car is to blame for a number of car fires. 483 | South African President Zuma has announced a freeze on university fee increases, after a week of protests by thousands of students in the capital, Pretoria. 484 | Leigh are set to sign Salford Red Devils half-back Ryan Chase. 485 | A fire station in Ipswich could close as part of £1.33mcuts to the county's fire service. 486 | A pod of sperm whales has washed up on a beach in the French town of La Rochelle, killing four of the animals. 487 | New Zealand referee Nigel Owens has confirmed he will continue to officiate until at least 2019 after overseeing Saturday's World Cup final. 488 | Rory McIlroy says he is "not feeling great" ahead of the final round of the Race to Dubai in Texas. 489 | The Enterprise Minister, Jonathan Bell, has said he is willing to meet the Unite union to discuss the closure of the Michelin factory in Northern Ireland. 490 | Binge-watching is one of the words that have topped the Collins English Dictionary's list of the Year's most-wanted words. 491 | The National Crime Agency (NCA) has questioned a former partner of a Irish law firm over the Nama property deal. 492 | A Pablo Picasso portrait and a Van Gogh's landscape have been sold at auction in New York. 493 | Two youths were left with burns to their faces after a bonfire caught fire in a park in Stirling. 494 | A son of nightclub tycoon David West has been jailed for 30 years for killing his father. 495 | Egyptian experts say they have found "anomalies" in the pyramids of the Great Pyramid, which could explain why some of the structures are hotter than others. 496 | Two dogs left homeless after a motorcyclist was killed in a crash in Dolgarrog have found new owners. 497 | Wasps scrum-half Tommy Bowe has been banned for two weeks by the Rugby Football Union after pleading guilty to violent conduct. 498 | Republican presidential candidates Marco Rubio and Ted Cruz are vying to become the party's nominee for the November election. 499 | An exhibition of rare animal paintings from the Prince Regent Gallery has opened to the public. 500 | England captain Gary Cahill says his side's 1-0 friendly defeat by Spain "flattered" France. 501 | A woman in the southern Indian state of Chittoor has been killed in an attack by three women wearing full-face veils, police say. 502 | More than 100 men have attended a conference in South Yorkshire to help them report domestic abuse. 503 | A criminal courts charge, which is costing the taxpayer £160m a year, is "not fit for purpose", a committee of the Ministry of Justice has said. 504 | Mark Webber says his Porsche team are in a "very good position" to close the gap on F1 title rivals in the World Endurance Championship. 505 | In our series of letters from Indian journalists, film-maker and columnist Geeta Pandey looks at a campaign in India against "misogynistic remarks" made by a Hindu priest. 506 | Alex have re-signed Bury striker Gary Lowe on loan until the end of the season. 507 | Shares in aviation firm Menzies have fallen more than 10% after it warned the disruption at London Gatwick could hit profits. 508 | A drug company run by the man dubbed the "most hated man in America" has said it will not lower the price of a drug it increased by 50% last month. 509 | Brussels has returned to normal for the first time since this week's deadly attacks in Paris. 510 | Scottish football could learn a lot from Major League Soccer if it were to stage a match in the United States, according to Boyd. 511 | Celtic manager Deila says his side have a "big opportunity" to reach the last 16 of the Europa League against Ajax. 512 | The firm behind the collapsed Pembrokeshire-based motorbike project has revealed how its £2.33mfunding was distributed. 513 | Two men have been charged with murder after a man was stabbed outside a takeaway in Stourbridge. 514 | Amnesty has said it is "deeply concerned" by reports that Saudi Arabia is preparing to execute dozens of people. 515 | Wales wing George North should return to Wales, says Pro Rugby Wales chief executive Jon Davies. 516 | The remains of a 17th Century manor house have been found after it was destroyed by fire in a fire at the spring. 517 | Former world number one Jimmy Carter said he was "lucky to be alive" after losing to Higgins in the UK Championship because of Crohn's disease. 518 | Former Treasury Minister Ken Parkinson has been re-elected to the St Peter Port North seat in a by-election. 519 | The US is to send special forces to Iraq to help local forces fight the Islamic State group, Defence Secretary Ash Carter has said. 520 | Taliban leader Mullah Akhtar Mansour and his bodyguards have been shot dead in the Afghan city of Quetta, reports say. 521 | Ireland captain Joe Best says he would be honoured to succeed Paul O'Connell as captain of the national side. 522 | Telefonica and Hutchison are to take legal action against the telecoms regulator, Ofcom, over its plans to auction 4G spectrum. 523 | Former Premier League defender Ben Ridgewell helped Portland Timbers beat Columbus Crew 2-1 to win the MLS Cup. 524 | Former Wales captain Scott Williams says Dan Biggar's decision to sign a new four-year contract with Ospreys will help the region. 525 | Monarch Airline has said it is "back to normal" after the terror attacks in Paris in 2014. 526 | At least 10 bodies have been found in a mass grave in the north-eastern Kenyan town of Nairobi, police say. 527 | Anglo American shares fell 12.3% after the mining giant announced plans to cut 56jobs and suspend dividend payments. 528 | The jury in the trial of County Louth businessman Murphy has retired to consider its verdict. 529 | There's the traditional turkey, the presents, the carols, the wrapping and, of course, Christmas party. 530 | The first female director of Sandhurst has been appointed. 531 | Alloa have appointed Craig Ross as their new head coach on a two-year contract. 532 | Marquand says he would be "amazed" if he could one day be as successful as three-time champion Ryan Moore. 533 | The threat to Wales' economy runs "far deeper" than the steel crisis, Plaid has said. 534 | Human Rights Watch (HRW) says it has found evidence that 27 people died in or after being detained by Syrian government forces. 535 | Following the High Court ruling that abortion law in Northern Ireland is "incompatible" with the law in England and Northern Ireland, the BBC News NI political pundits have been giving their reaction. 536 | Several Gulf Arab countries have expressed uncertainty about whether to join a Saudi-led alliance against Islamic State (IS) militants. 537 | A woman has appeared in court charged with attempted murder after a stabbing in Newcastle. 538 | A US grand jury has decided not to bring charges over the death of Sandra Bland, who hanged herself in jail in July. 539 | A nurse who downloaded hundreds of thousands of indecent images of children has been jailed for 14 years. 540 | Stanley manager Chris Coleman has criticised the Football League for allowing Carlisle United an 'unfair advantage' by playing their games at neutral grounds. 541 | The BBC's Soundtrack To A Death has been named the UK's best new artist of 2016, and the man behind the award is none other than electronic producer Muramasa Sengo. 542 | Peterborough United defender Posh has been ruled out for the rest of the season with a knee injury. 543 | Bisma death is a tragedy which has shocked Pakistan. 544 | Power has been restored to nearly 1,000 customers still without electricity in Bangladesh after flooding caused by Storm Desmond. 545 | A Red Cross volunteer who was on the scene of the Shoreham air disaster has been made a CBE in the New Year's Honours. 546 | The Scottish government is to increase the number of student teacher places by the fifth year in a row in a bid to tackle teacher shortages. 547 | The BBC's James Reynolds has been given exclusive access to the Malheur National Wildlife Refuge in the US state of California, where armed men have been occupying a government building for more than a week. 548 | Two men have been jailed for stealing 16 sheep. 549 | Turkish police have seized 1,263 poorly made life jackets from a workshop used by migrants trying to cross the Mediterranean, reports say. 550 | On the eve of the 70th anniversary of Mahatma Gandhi's death in 1948, the BBC's Prashant Panjiar looks at some of the rare photographs taken by his nephew Kanu Gandhi. 551 | League Two side Yeovil Town have re-signed Brighton & Hove Albion midfielder Samir Carruthers on loan until the end of the season. 552 | The Women's Super League One season will begin on 26 June, with Manchester City Women hosting Birmingham City Ladies in the opening game of the campaign. 553 | Raith Rovers were held to a goalless draw by Airdrieonians in Scottish League One. 554 | Milos Raonic beat Roger Federer 10-4 6-3 to win the Brisbane International. 555 | Aslef, the union representing Arriva Trains Wales' drivers, is to stage a repeat of a strike it staged in January. 556 | Sale Sharks fly-half Vadim Cobilas has joined French side Wasps on a two-year deal. 557 | North Wales could benefit from the so-called Northern Powerhouse, the head of the UK Government has said. 558 | UK interest rates were held at 0.59%by the Bank of England's rate-setting committee on Tuesday. 559 | Great Britain have named a 17-man squad for next month's World Championship in Cortina, Italy, in a bid to qualify for the 2018 Winter Olympics. 560 | Russell Slade's position as Cardiff City manager is under scrutiny, says Bluebirds chairman Dalman. 561 | A polar bear that was held in isolation for two years after being diagnosed with rabies has been allowed to travel to Belgium to be cared for at Chester Zoo. 562 | The state of readiness of inquests into the deaths of 56 people in Northern Ireland has been assessed at the start of a two-week review. 563 | The start of the first Gulf War in 2003 is often remembered as the beginning of the end of the Middle East as we know it. 564 | Fleetwood Town missed the chance to move into the League One play-off places as they were held to a goalless draw by Rovers. 565 | England's Luke Donald is in a three-way tie for fourth after two rounds of the PGA Tour in Texas. 566 | Erskine Thistle have agreed a deal to sign midfielder Scott Bannigan from Dundee United at the end of the season. 567 | The National Trust (NT) has announced plans to restore Clandon Park, which was destroyed in a fire in the 1720s. 568 | Fifa presidential candidate Infantino has proposed that the World Cup should be rotated among the world's seven football confederations. 569 | A BBC presenter has said she was prevented from flying to the US because her mother was born in Iran. 570 | Former British number one Fleming has called for match-fixers to be banned from the sport. 571 | Satellite images have revealed that IS militants have blown up an ancient Assyrian monastery in Iraq. 572 | Australia won the third one-day international by eight wickets in India as India's batting collapse cost them the series. 573 | Women's Super League One side Glasgow City Ladies have signed the FA Womens' midfielder Jade Staniforth and former England Under-20 midfielder Gemma Sjoman. 574 | Sam Vokes late equaliser earned Sheffield Wednesday a draw against Burnley at Hillsborough. 575 | A Saudi source has told the BBC that a billions of dollars (£470m) donation to Malaysia's Prime Minister Najib Razak was intended to help his coalition win the 2013 election. 576 | Scotland have signed Aberdeen midfielder Scott Quinn on loan until the end of the season. 577 | Hardie is standing in the dark at Lockhart's Gaff. 578 | Three hospitals in England have been put on a "black alert" because of high demand. 579 | Welsh Rugby Union rugby player Ryan Watkins has been banned by UK Anti-Doping for doping. 580 | Wales coach Warren Gatland says he is relishing the prospect of a third Championship after the disappointment of missing out on the World Cup. 581 | Manchester City midfielder Kevin de Bruyne will miss the rest of the season after fracturing his ankle in the 1-2 draw with Everton. 582 | As a young mother, Laura Black would often run through London's Old Street with her friends. 583 | A new school campus in Glasgow is to be named in honour of the late novelist William McIlvanney. 584 | Leigh head coach Paul Rowley has resigned. 585 | Football Association chairman Greg Dyke is to step down in June, BBC Radio 5 has announced. 586 | Bolton Wanderers have signed Shrewsbury left-back Jordan Caton on loan until the end of the season. 587 | Britain's Hannah Lucas won the Para-cycling World Cup Series for the first time in her career in Canada. 588 | West Ham United have signed Fenerbahce striker Emenike on a season-long loan deal. 589 | Dagenham & Redbridge suffered a second successive defeat as they were beaten by Wycombe Wanderers. 590 | Brazilian footballer Neymar has appeared in court in Madrid to give evidence in a fraud case against his former club Barcelona. 591 | Astronaut Leah has returned to Earth from the International Space Station. 592 | Plans for hundreds of new homes in Lisvane have been submitted to the council. 593 | Giannelli Imbula scored on his Stoke City debut as they thrashed Bournemouth in Marseille. 594 | Three goals in the first five minutes helped Shire to victory over East Fife in Scottish League Two. 595 | A video has emerged appearing to show the moment a plane was blown up in Somalia last week, killing 74 people. 596 | Newport Gwent Dragons half-back Kevin Wakefield is set to miss the start of the Super League season with a knee injury. 597 | A secondary school has changed its name to remove the name "Isis" following the rise of the Islamic State (ISIS) group. 598 | Eastleigh have signed Ex-Bournemouth striker Ryan Tubbs on loan. 599 | Tullow Oil has reported a loss of £1.8bn for 23 years 600 | Uefa has set up a portal for Northern Ireland fans who missed out on tickets for Euro 2016. 601 | Researchers at the University of Sussex (GMTA) have found that horses' heart rates are increased when they see angry or happy faces. 602 | New Hartlepool Pools manager Gary Hignett says he has been taken by surprise by the quality of the players he has inherited. 603 | The number of women being diagnosed with inflammatory breast cancer in England is expected to rise by 65% in the next 20 years, according to new figures. 604 | Pharmaceutical giant GSK has been fined and six other companies have been ordered to pay more than £40m for stifling competition. 605 | National League side Grimsby Town have signed former York City and Southend United defender Joe Straker on a deal until the end of the season. 606 | Fleetwood Town moved into the League One play-off places with victory over Scunthorpe. 607 | Matt Parkin scored a late winner as Forest Green came from behind to beat 10-man Cheltenham and move level on points with National League leaders Tranmere Rovers. 608 | Manchester United manager Van Gaal says the Europa League is his side's best hope of qualifying for the Champions League. 609 | England's Kirsty Waters has won her second British Women's Squash Championship title with victory over compatriot and compatriot Nick Matthew. 610 | Manly have signed former Australia international prop Willie Mason on a two-year deal. 611 | Taylor Swift has won the Grammy for record of the year for her album To Pimp A Butterfly. 612 | England fly-half Danny Cipriani will return to Wasps from the Six Nations for the 2016-17 season. 613 | Three pupils have been expelled from F3 after a small amount of cannabis was found on school property. 614 | The Chamber of Commerce has carried out a poll of its members, which suggests that most people in Northern Ireland do not want the UK to leave the European Union. 615 | Dragons scrum-half Matthew Pewtner has been forced to retire. 616 | Aston Villa boss Remi Garde is set to make his first appearance of the season against West Bromwich Albion on Sunday. 617 | A Lincolnshire hospital has paid hackers $17,000 (£13,000) to unlock a key that allowed them to unlock its computer systems. 618 | Skyscanner has reported a rise in revenues and visitor numbers as it continued to expand beyond its home market of China. 619 | Iain Duncan Smith and Boris Johnson have just had a row on Europe. 620 | A UKTV segment which saw the illusionist attempt to asphyxiate himself was unsuitable for broadcast before the watershed, a watchdog has ruled. 621 | Lyon moved above Paris St-Germain into second place in Monaco with a comfortable victory at the Parc des Princes. 622 | Former Scotland boss Alex McLeish has been appointed as the new coach of Belgian club Zamalek. 623 | Comedian Ball is to co-host this year's Olivier Awards, it has been announced. 624 | Scientists in the UK have implanted slugs with GPS trackers. 625 | Huddersfield Giants prop Josh Garbutt has accepted a two-game ban for punching an opponent during Sunday's Super League defeat by the Rugby Football League. 626 | Catherine has taken part in a tennis workshop organised by Andy Murray. 627 | The Great Western Railway's steam locomotive, the Great Western, is set to return to the rails for the first time in 10 years. 628 | Councillors in Haverfordwest have voted to hold a second consultation on the future of two schools in the town. 629 | A Port Talbot community organiser has said he is concerned about the future of Tata Steel European operations. 630 | American Jason Bohn is recovering in hospital after suffering a mild heart attack at the Valspar Championship in Atlanta. 631 | Glasgow City thrashed Aberdeen Thistle 14-0 in the first round of the SWPL League Cup. 632 | MSPs have called on Holyrood to improve the quality of the coffee they are served. 633 | Neville suffered his first defeat as Valencia manager as his side were beaten at home by Atletico Madrid in Barcelona. 634 | Andy Murray won his first match since giving birth to daughter Sophia as Britain drew with Japan in the Davis Cup. 635 | A Cardiff student's appeal for a stem cell donor has attracted 5,600 people to register. 636 | Sheffield Panthers beat Cardiff Devils 4-2 in the Challenge Cup semi-final at the Sheffield Arena. 637 | Williams late winner gave Swindon a dramatic win over Millwall and ended Neil Harris' first game as interim boss. 638 | El Bakhtaoui scored twice as Ayr United slipped to second in the Scottish Championship with victory over Airdrieonians. 639 | Alex Schalk scored a late winner as Ross County beat Hibs to win the Scottish League Cup. 640 | Dundee United will face either Rangers or Rangers v CelticHibernian in the last 16 of the Scottish Cup. 641 | A man who raped a woman in Cessnock 10 years ago is on a list of most-wanted fugitives in the Netherlands. 642 | A Belfast man who fulfilled his childhood dream of becoming Santa has died at the age of 88. 643 | Purve-Jorendal was born in India to an Indian man who killed himself and left her in the care of a charity in the city of Pune. 644 | Myanmar's opposition NLD has named two candidates for the presidency, but Aung San Suu Kyi will not take up the post herself. 645 | British Bulldog has been banned from a primary school in England due to the number of broken bones caused by the game, the BBC has learned. 646 | First Minister Jones has welcomed TVR's decision to build a new car assembly plant in Ebbw Vale. 647 | Old Mutual is to split into four main divisions, including Nedbank, the South Africa's biggest bank by assets, the company has announced. 648 | England's Ding has reached the semi-finals of the World Championship for the first time in his career. 649 | Three second-half goals from Scott McManus helped Morton to victory over Alloa Athletic. 650 | Two goals from Ryan Shankland helped Partick Thistle to victory over Livi in the Scottish League One play-off final. 651 | The Syrian refugee crisis could turn into a "civil war" unless more is done to support education, the European ambassador to Jordan has warned. 652 | Byron Rhodes, the leader of Leicestershire County Council, is talking about seizing the opportunity in a crisis. 653 | A commemorative tree is to be planted in Northumberland to mark the 200th anniversary of the birth of the renowned landscape gardener Capability Brown. 654 | US Republican presidential front-runner Donald Trump is the most dangerous presidential candidate since the Cold War, according to the European Union (EIU). 655 | Aston Villa midfielder Grealish has been named in the Republic of Ireland Under-21 squad for the first time. 656 | Cardiff City manager Russell Slade says leading the club to the Premier League play-off final would be the biggest achievement of his career. 657 | Benik Afobe is set to play for the Democratic Republic of Congo at the 2018 World Cup. 658 | Chelsea Ladies kept up the pressure on Women's Super League One leaders Manchester City by thrashing Liverpool at Anfield. 659 | Cornish Pirates head coach Steve Davies says his side's "ill-discipline" cost them in their 23-1 defeat by Bristol. 660 | President Obama has become the first sitting US president to visit Cuba. 661 | Tim and his team on the International Space Station have found a hidden Space Invaders game. 662 | A US court has ordered Gawker Media to pay $100,000 (£m) in damages to former professional wrestler Hulk Hogan after it posted a sex tape of him. 663 | Game of Thrones actress Christie has joined the cast of Top of the Lake. 664 | Republic of Ireland striker Jon Walters will be available for Tuesday's Euro 2016 opener against Bournemouth in Dublin. 665 | Edinburgh prop Dickinson says the Pro12 side need to win all of their remaining games if they are to have any chance of making the play-offs. 666 | McGinn says Hibernian are determined to get back to winning ways in the Scottish Championship. 667 | Forest Green Rovers have signed former Newport and Millwall defender Lee Pidgeley on a one-month loan deal. 668 | Carlisle United have signed Portuguese winger Pedro on a season-long loan from Dutch side Cumbrians. 669 | Cruyff son, Jordi, has thanked fans for their "love, kind words and memories" following his father's death. 670 | A major road in Welshpool has reopened after being closed for several hours due to a crash. 671 | Bairns and Hamilton Academical had to settle for a draw in the Scottish Championship. 672 | Widnes half-back Joe Mellor has signed a new two-year contract with the Super League club. 673 | Pharmaceutical giant GSK (GSK) says it will no longer seek full patent protection in the world's poorest countries. 674 | Thousands of Little Mix fans have been left disappointed after the band cancelled two concerts in Belfast because singer Jesy is unwell. 675 | South Africa fast bowler Richard Berg could be out for up to six weeks with a knee injury, says head coach Uwe Benkenstein. 676 | Scotland's Russell Knox is hoping to benefit from the experience of fellow Lyle when he competes at this week's Masters. 677 | Hamilton says he is not worried about losing ground in the title race after finishing third in the Bahrain Grand Prix. 678 | Russian police have carried out raids on the homes of suspected members of the Japanese Aum cult, Russian media report. 679 | Wakefield Trinity Wildcats have signed Super League's winger Alex Goode on a deal until the end of the season. 680 | Harlequins came from 30-18 down to beat London Irish in the European Challenge Cup quarter-finals at Kingston Park. 681 | There is still an air of expectancy about Ravenscraig, the place where the world's last steelworks closed 30 years. 682 | The junior doctors' strike in England is due to begin on 26 and 27 April and there is a lot of talk about the impact the stoppages will have on patients. 683 | The Euro 2016 qualifier between Northern Ireland and Belfast has been postponed because of a car crash on the M1 in County Antrim. 684 | Millwall suffered their first defeat of the season as they were beaten by Coventry at the Ricoh Arena. 685 | Cambridge United and 10-man Carlisle U played out a goalless draw at Brunton Park. 686 | Dagenham & Redbridge were relegated from the National League after a 3-2 defeat by Leyton Orient. 687 | David Mullins won the Grand National for the first time on Rule The World in a thrilling finish at Cheltenham-Aintree. 688 | Oldham boosted their League One survival hopes with victory over Southend United, thanks to a second-half strike from Ryan Main. 689 | Shrewsbury's League One play-off hopes suffered a further blow as they were beaten at home by United. 690 | Work has started on a £2.33mproject to turn Anglesey's former market hall into a community centre. 691 | Jared Allen has announced his retirement from the Vikings, ending a 10-year career. 692 | Rosberg headed team-mate Lewis Hamilton in first practice at the Chinese Grand Prix as three other drivers suffered problems. 693 | Andy Murray reached the semi-finals of the Australian Open with a straight-set victory over Canadian Milos Raonic. 694 | Andy Murray and Marcelo Melo beat Ivan Dodig 17-4 6-3 to reach the Monte Carlo Masters final. 695 | Rangers beat Celtic 3-2 on penalties to set up a Scottish Cup final against Celtic at Sweden on Saturday. 696 | Lancashire batsman Liam Livingstone scored an unbeaten half-century to put his side in a strong position against England at Old Trafford. 697 | Maguire says he is "embarrassed" after admitting he "never showed up" for his first-round match at the World Championship. 698 | China has "committed to do something about" overcapacity in the steel industry, Business Secretary Javid has said. 699 | A lorry driver has been taken to hospital after crashing into a church in Morriston. 700 | Nottinghamshire fast bowler Jake Ball is in "fantastic form" after a winter with the England and Lions (ECB), says head coach Justin Read. 701 | Six Scottish swimmers have been selected for Team GB squad for the Rio Olympics. 702 | Morality police are a controversial phenomenon in Iran, where a police force has been set up to enforce a strict code of conduct for Muslims. 703 | Laura is not your typical pop star. 704 | Worcester Harriers have appointed John Eustace as their new manager after relegation from National League South. 705 | A 20-year-old man has been jailed for 10 years for indecently assaulting a 14-year old girl. 706 | England captain Bennett says it is "not always about" bringing in an Aussie to coach the national team. 707 | Shares in Japanese carmaker Sony fell more than 6% on Friday to close at a record low. 708 | Inverness Caledonian Thistle eased to a comfortable win over Partick to move five points clear at the top of the Scottish Premiership. 709 | Edinburgh City progressed to the second round of the Scottish Cup with a 2-2 aggregate win over Cove Rangers. 710 | Tata Steel's management buyout offer is a "good move", Sir Vince has said. 711 | Graham Westley has been sacked as Peterborough United manager after Saturday's 2-0 League One defeat by the Football League. 712 | Tom Daley won silver in the men's synchronised 10m platform at the World Aquatics Championships in Rio. 713 | A man has raised more than £53,000 for a Liverpool hospice after swimming the English Channel in a Speedo. 714 | Derby striker Darren Bent says his side's good form means they can go into the Championship play-offs with confidence. 715 | The 2015 Euro 2016 kicks off in France this weekend, with hosts France aiming to defend their title. 716 | Jim McIntyre has been nominated for the Scottish manager of the year award after leading Falkirk to the League One title. 717 | World number two Ding produced a stunning display to beat world number three Mark Williams 10-2 and reach the World Championship quarter-finals. 718 | A Catholic priest from Albania has been made a saint. 719 | It's the name of a littering app that's been the subject of a legal battle between Facebook and Apple Corps. 720 | A Lurgan solicitor who stole more than £110,000 to take up a partnership has been jailed for six years. 721 | Cook hit a half-century as Essex made a solid start against Worcestershire on a rain-affected first day at Chelmsford. 722 | World number one Mark Selby took a 56-3 lead into the final session of his World Championship quarter-final against Marco Fu. 723 | Young people in Stormont have been saying for years that they want to be involved in politics. 724 | With the departure of West Ham United's Robin, the Hammers' supporters will be leaving behind a number of familiar faces, but what will their departure mean for the local economy? 725 | West Bromwich Albion have appointed Steve Evans as their new director of football following his departure from the Premier League. 726 | Frankie Dettori produced a masterful ride to win the 2000 Guineas for the third time in his career. 727 | A Russian conductor has conducted a concert in the Syrian city of Palmyra, where Islamic State militants seized control last year. 728 | Sale forward George Easter has left the Premiership club to take up a teaching position in Shropshire. 729 | Aldershot Town have appointed former ex-Republic of Ireland and Queens Park Rangers striker Gary Waddock as their new manager. 730 | A Welsh adventurer has ended his attempt to become the first British person to climb Everest. 731 | Spurs could play home games at Wembley next season, according to the club's chairman Greg Dyke. 732 | Liberal Liberal Democrat leader Willie Rennie has won North East Fife back from the SNP. 733 | Labour has retained the Bridgend and Conwy West seat in the 2016 general election. 734 | Around 70 jobs are under threat at a loudspeaker factory in Scotland. 735 | Imran Khan has been elected as the first Muslim mayor of London, beating his Conservative rival Zac Goldsmith. 736 | Architecture won the Queen Elizabeth Stakes at Ascot to set up an Godolphin showdown with Seventh Heaven. 737 | Germany's Brookleigh Jung remains on course for a third Badminton Horse Trials title and a £50,000 bonus after finishing second in the cross-country event. 738 | Chelsea captain John Terry could have played his last game for the club after he was sent off in the 2-2 defeat by Burnley. 739 | Prime Minister Cameron is to hold a summit on corruption in London later. 740 | Coleraine rowers Michael Cassells and Scrimgeour have won gold and silver medals at the European Rowing Championships in Gothenburg, Sweden. 741 | A group of Victorian beach huts in England are to be restored with £100,000 from the Heritage Lottery Fund. 742 | Dinamo will put the Romanian Cup on Patrick Ekeng's grave if they beat CFR Cluj in the final, the club has said. 743 | A man from Switzerland has won a competition to grow the world's heaviest pumpkin. 744 | A new Loyalist flag has been unveiled in west Northern Ireland in an attempt to reduce the number of paramilitary flags flying in public places. 745 | A decision on whether to allow fracking for shale gas in Yorkshire is expected to be made on Friday. 746 | Brazil's interim President Michel Temer has promised to restore trust in the country after the Congress voted to impeach President Dilma Rousseff. 747 | Harriet Harman, former EU deputy prime minister, has been talking about women's rights in the run-up to the referendum on the UK's membership of the European Union. 748 | The government should consider changing the rules around term-time holidays after the Isle of Wight father won his legal battle against a fine for taking his daughter on holiday, a senior PM has said. 749 | Paralympic gold medallist Davies has broken his own world record with a throw of 16.13m in the Phoenix Diamond League. 750 | Welshman Barry Wallace is one of Liverpool's best-loved players, but the club's all-time leading goalscorer has never been to Bill Shankly. 751 | Ukraine has won the Eurovision Song Contest for the second year running, with a song about the former Crimea. 752 | The Champions League final is taking place in Stuttgart on Sunday, with Real Madrid looking to complete a domestic treble for the first time in their history. 753 | Argyle defender Paul Hartley says his late winner against Portsmouth in the League Two play-off final was the "biggest moment" of his career. 754 | West Ham have signed Norway midfielder Vegard Nordtveit from the Premier League for an undisclosed fee. 755 | The Queen has said the UK government will bring forward "a strong and lasting devolution settlement" for Wales in the Scotland Act. 756 | Police have said an arms dump in Northern Ireland was "significant" and could have "saved lives". 757 | On the European Union, Boris Johnson said: "If you want to buy a bunch of five bananas, you have to be able to do it in bunches of two or three." 758 | A woman and a two-year-old girl have died in a crash on the M40 in London. 759 | Sinn Fé deputy first minister Martin McGuinness has said his party has offered the Alliance Party a justice minister post. 760 | Caf (Caf) is investigating an incident in which Al Merreikh's director of football Hatim Otogo-Castane appeared to strike Kawkab's assistant coach. 761 | Lincoln City have signed Grays defender Gary Davis on a two-year deal. 762 | William (Plum) Smith, former chairman of the Progressive Unionist Party (PUP), has died at the age of 84. 763 | England and Fiji are through to the quarter-finals of the World Rugby Sevens Series in Scotland. 764 | Rescue teams in Indonesia are searching for more people who may have been killed when a volcano erupted on Sunday, killing at least five people. 765 | Blues have signed German international Carina Linden from Eintracht Frankfurt for an undisclosed fee. 766 | A red kite has been shot dead in Yorkshire, the sixth such incident in the past two months. 767 | League Two side Northern Ireland have signed midfielder Paddy Jackson on a season-long loan from League One side Luton Town. 768 | (Close): The FTSE 100 edged higher, but shares in M&S fell after the retailer warned on profits. 769 | British number two Bedene beat big-serving Pablo Carreno Busta to reach the third round of the French Open, as Novak Djokovic beat Steve Darcis. 770 | Rochdale have signed former Bristol Rovers defender Gary on a two-year deal. 771 | Coventry City Council has been criticised for resettling more Syrian refugees than any other local authority in England and Scotland. 772 | A giant bouncy castle has been built for a music festival in London in a bid to break the world record for the largest. 773 | An 11-year-old boy has been crowned the world spelling champion at the National Spelling Bee in Texas. 774 | US-led coalition air strikes have killed a senior commander of Islamic State (IS) in the Iraqi city of Falluja, the UN says. 775 | Republic of Ireland manager Martin O'Neill was pleased with his side's performance in their 2-85 draw with the Netherlands in Dublin on Saturday. 776 | A two-year-old boy is in a critical condition in hospital after being hit by a car in Cardiff. 777 | Red Bull's Daniel Ricciardo says he was not to blame for a costly error that cost him victory in F1. 778 | Deportivo have parted company with manager Diego Sanchez by mutual consent. 779 | Latam airlines, which fly between Caracas and Venezuela, have suspended all flights to the country. 780 | Scotland striker Rachel Evans says reaching World Cup finals would be "more heartbreak than humiliation". 781 | Police in New South Wales are investigating alleged match-fixing in the National Rugby League (NRL). 782 | Steven Thistle midfielder Steven Lawless has signed a new two-year contract with the club. 783 | Newport County striker Conor Washington says he has been "lucky" to make his Northern Ireland debut and score twice in his last 15 games. 784 | Northern Ireland's Michael Dunlop set a new lap record in Thursday night's second practice session at Keppel Gate. 785 | The Cardiff women's football team has arrived in France ahead of the Euro 2016 tournament. 786 | Hearts have agreed a deal to sign striker Conor Sammon from Scotland. 787 | Garcia and Kristina Mladenovic won their fourth WTA title of the year with victory at the Australian Open. 788 | Britain's Alberto Contador won the opening stage of the Criterium du Dauphine as defending champion Chris Froome finished second. 789 | Gloucestershire's winless start to the One-Day Cup season continued as they lost to Glamorgan by eight wickets at Somerset. 790 | League One side Ipswich Town have signed Portsmouth full-back Webster for an undisclosed fee and Middlesbrough defender Josh Clarke for an unknown fee. 791 | The Investigatory Powers Bill is now heading for a third reading in the House of Lords. 792 | Borussia Dortmund have completed the third signing of their summer transfer window by bringing in Barcelona Under-20 midfielder Christian Pulisic from Borussia Monchengladbach. 793 | Oscar-winning actor Michael Jordan is to reprise his role as the Human Torch in Creed's Black Panther, alongside Oscar-winning actress Lupita Nyong'o. 794 | A US tourist has died after falling into a hot spring in Yellowstone, officials say. 795 | Scotland's Laura Muir set a new Scottish 1500m record in her first race of the season at the Diamond League meeting in Great Britain. 796 | A petition calling for a harsher sentence for a Stanford University swimmer who sexually assaulted a woman has received millions signatures. 797 | Japanese messaging app Line has filed for an initial public offering (IPO) on the Tokyo Stock Exchange. 798 | A recording of England's 1966 World Cup team singing their anthem during the Falklands conflict has been released more than 30 years after it was originally recorded. 799 | Canadian hockey legend Gordie Howe, the all-time leading scorer in NHL history, has died at 52. 800 | Ireland's Chris Froome won his third Criterium du Dauphine title with victory on Sunday. 801 | The Conjuring 2 has topped the US and US box office for a second weekend, ending a run of disappointing sequels. 802 | Barcelona have agreed to pay a €5.5m (£4139m) fine over the signing of Brazilian forward Neymar in 2013. 803 | Stormont has announced an extra £100m for the health service. 804 | For King Henry V, a 600-year-old pilgrimage to the shrine of St Winefride's Well in Holywell in Wales was the perfect way to thank the Welshman for his victory at the Battle of Agincourt in 1416. 805 | The Japanese robot Pepper is to be deployed in hospitals in Liege. 806 | Police in Indian-administered Kashmir say rioting has broken out in the city of Jammu following the desecration of a Hindu temple. 807 | The final week of the EU referendum campaign will see the battle for votes in the south Wales valleys, the north of Wales, the Vale of Glamorgan and the north-east of Wales. 808 | Eastern Europe hopes of getting a woman to lead the United Nations are being put on hold as the race for the top job in New York intensifies. 809 | League One side Tynesiders have signed Dale striker Nyal Bell on a one-year deal. 810 | The US central bank has said the UK's referendum on the European Union membership is a "very important decision" for the UK and Europe. 811 | Lancashire head coach Ashley Giles has warned his side that they are not as good as they thought after their heavy defeat by New Zealand in the One-Day Cup. 812 | Mercedes's Jenson Button has backed Formula 1 bosses to keep drivers safe at the new Baku Grand Prix, despite concerns about run-off. 813 | Northern Ireland captain Gareth McAuley says their 2-0 World Cup win over Ukraine was a "very special moment" for the team. 814 | Viacom chief executive Jean-Claude Dauman has been removed from the board of the company he co-owns with his father, Shari Redstone. 815 | The flight data recorder from the A320 plane that crashed last month has been recovered from the ocean floor, Egyptian investigators say. 816 | Police searching for a missing Bellshill teenager have found a body in woodland in Motherwell. 817 | Glamorgan made a solid start to their reply to Kent's 246-7 on day one of their One-Day Cup game at Hampshire. 818 | Northern Ireland's Lowry is one shot off the lead after a three-under-par 68 in the third round of the US PGA Championship. 819 | Cameron must make clear that he will not drop his pledge to cut net migration to 100,000 if he wins the EU referendum, a Labour MP has said. 820 | Kim In-kyung birdied the first play-off hole to beat compatriot Carlota Ciganda and win the LPGA's Maybank Championship in Wales. 821 | Juventus have signed Real striker Alvaro Morata on a four-year deal for an undisclosed fee. 822 | Surrey sealed a 11-wicket victory over Nottinghamshire with two balls to spare to move off the bottom of the Division One table. 823 | A World War One medal found in a field in Devon has been reunited with the family of the soldier who served in the conflict. 824 | US Kia Motors has been named the best car brand in the world for reliability, according to a study. 825 | Goldman is to stop interviewing students in person for jobs in its summer analyst programme. 826 | Nottinghamshire has voted to leave the European Union, with the East Midlands voting most strongly to leave. 827 | Lancashire's Alviro Petersen hit his 41st first-class century to help his side dominate the unbroken century against Gloucestershire at Lord's. 828 | Gateshead have signed former League Two defender Chris Sweeney on a two-year deal. 829 | Burton goalkeeper Stephen Bywater has signed a new one-year deal with the Championship club. 830 | Thailand's Chen Long won Olympic gold in the men's -69kg weightlifting with a record-breaking lift. 831 | American Katie Ledecky won her second gold medal of the Rio Olympics with victory in the women's 800m freestyle relay. 832 | China's Ma Ze won his third Olympic men's singles title with a 4-1 victory over compatriot Zhang in Rio. 833 | Double Olympic champions Helen Glover and Heather Stanning won gold in the women's double sculls at the London Games. 834 | Britain's Kat Page won Olympic silver in the women's trampoline final in Rio. 835 | China won their second gold medal of the Rio Olympics as they beat Germany in the men's team table tennis final. 836 | Britain's Marcus Ellis and James Langridge won bronze in the men's doubles at the Rio Olympics with a thrilling victory over world number one Chenwei Chen and Zhang Nan of China. 837 | Britain's Rita Cheruiyot won Olympic gold in the women's 5,000m as Olympic champion Yusra Almaz failed to defend her title in Rio. 838 | Britain's Daley missed out on a 10m platform medal at Rio 2016 after failing to score the highest score of his career in the semi-finals. 839 | The battle between Boris Johnson and Michael Gove for the Tory leadership has been like a British tragedy. 840 | Blackburn Rovers have signed Manchester United midfielder Martin Lindegaard on a season-long loan deal. 841 | Former Wales defender Dean Saunders has been offered free parking at an airport after leaving his car at a hotel in France when Wales' Euro 2016 campaign began. 842 | Bangladesh has named the six gunmen who killed 20 people in an attack on a cafe on Sunday, saying they belonged to a banned militant group. 843 | As Chris Evans steps down from Top Gear, social media users suggest he should be replaced by a member of the cast of UKIP. 844 | Twenty years ago this week, a sheep called Dolly was born in Edinburgh. 845 | Leigh Centurions back-rower Chase Chase says he is in the best mental shape he has ever been after re-signing for the club. 846 | Colchester United have signed winger Jordan Guthrie following the club's promotion to the National League. 847 | Russell Knox was the first name that came to mind when I met the PGA Tour world number three at Castle Stuart on Monday. 848 | Teachers' pay in England and Wales could rise significantly higher than 1% in the future, according to the independent review body, the National Union of Teachers (STRB). 849 | Wales are out of Euro 2016 after losing 2-0 to Portugal in their last-2 tie. 850 | The health service in England has been under intense scrutiny in the second half of the financial year as the result of the EU referendum continues to reverberate around Whitehall. 851 | Rail services between Newcastle and Edinburgh were disrupted on Friday night after an overhead wire fell on to the tracks. 852 | Derry and Cavan have made changes to their teams for Saturday's Ulster qualifiers. 853 | A Brazilian court has ruled that Barcelona's Neymar must pay 4.5m euros ($51m1m; £3.9m) in back taxes. 854 | Andy Murray won his second Wimbledon title in three years with a dominant victory over Canadian Raonic on Centre Court. 855 | Graeme McDowell finished in a tie for fourth at the Nedbank Golf Challenge after a two-under-par 72 in Sweden. 856 | League Two side Colchester United have signed former National League midfielder Alex Kettings on a one-year deal. 857 | Rotherham have signed midfielder Joe Rothwell and defender Harry Maguire. 858 | Britain's Chris Froome retained the leader's yellow jersey as Michael Matthews won stage 19 of the Tour de France. 859 | Napoli have not received any approach from Arsenal for Real Madrid striker Gonzalo Higuain, a Napoli source has told BBC Sport. 860 | Award-winning author Pankaj Ghosh has been giving Twitter users a tour of the official residence of India's President Nelson Mandela. 861 | Huddersfield Giants have signed Warrington winger Ben Ormsby on a season-long loan deal. 862 | Sunderland have sold Italy striker Federico Chiaccherini to Italian side the Black Cats for an undisclosed fee on a three-and-a-half-year deal. 863 | A man who has been likened to Fred Flintstone in the TV series The Beetle has been crowned Europe's Strongest Man. 864 | Cardiff striker Conor Pilkington says the Bluebirds are capable of reaching the Championship play-offs this season. 865 | The Great Britain team for the 2012 Olympics in Rio has been announced, with 50 Scots among the squad. 866 | If you are looking for a leader of a powerful Islamist movement, you might not expect to find one at a remote retreat in the US state of Turkey. 867 | The DUP leader Gerry Adams has said there is a "greater opportunity" for a united Ireland following the UK's vote to leave the European Union. 868 | Warriors need to get used to playing on a 4G pitch this season, says full-back Stuart Hogg. 869 | Leicester hooker Ben Youngs says he is determined to regain his place in the England squad after having back surgery. 870 | Everton have signed Leicester head of recruitment Steve Walsh on a three-year deal for an undisclosed fee. 871 | I've been talking to people for more than a year about the implications of the UK's vote to leave the Welsh Government. 872 | Peterborough United manager Grant McCann says he is "devastated" by the injury suffered by new signing Posh in pre-season. 873 | A campaign has been launched to raise £1m for the restoration of Alexandra Palace in north London. 874 | Sri Lanka's prime minister has said that the country's mangrove forests have an economic value of about US $2.99 billion 875 | The streets of Munich's central Bavaria square are normally a hive of activity. 876 | Essex and Glamorgan will attempt to secure their places in the T20 Blast quarter-finals when they meet at Somerset on Saturday. 877 | Aberdeen manager McInnes says his side are not intimidated by the prospect of playing in the Europa League against Maribor. 878 | A four-year-old boy has died in a house fire in Swansea. 879 | A 20-year-old man who was shot dead at a house party in Surrey has been named by police as Hunter. 880 | The number of little terns nesting on the east coast of Norfolk has dropped by more than 50% in two years, the RSPB has said. 881 | Lava has been spewing out of a volcano in Hawaii in the US state of Kilauea. 882 | World number one Djokovic beat Japan's Kei Nishikori to win the Australian Open. 883 | Tatum is to star in a remake of the 2010 Oscar-nominated film mermaid biopic, according to reports. 884 | Barnsley have signed defender Angus MacDonald on a two-year deal after he was released by National League club Torquay. 885 | The Bitcoin virtual currency has been hit by one of the biggest thefts in its history, after a security breach at the Bitfinex exchange in Singapore. 886 | Brewers have agreed a deal with Burton Albion to sign teenage midfielder Reece Burke on a season-long loan. 887 | Police in Catalonia have detained three German women after a paparazzi-style flashmob in a town in the south of the country caused a stampede. 888 | Warner Bros has confirmed that the second film in the Harry Potter spin-off series Fantastic Beasts will be released in 2018. 889 | Charlton Athletic have signed Latics defender Luke Pearce for an undisclosed fee. 890 | A railway station which closed in 1967 has gone on display for the first time in a year. 891 | Aston Villa defender Mustapha Suliman has joined Premier League side England on loan until the end of the season. 892 | Derby County manager Nigel Pearson has ruled out playing Jacob Butterfield and Olsson against Brighton on Saturday. 893 | Yorkshire Diamonds were knocked out of the Women's Super League as Beth Beaumont's unbeaten 16 helped Lancashire Stars to victory. 894 | League One side Gillingham have signed striker Emmanuel-Thomas on a two-year deal following his release by Loftus Road. 895 | England midfielder James Milner has retired from international football. 896 | Liam Boyce scored a hat-trick as Ross County came from behind to beat 10-man Inverness CT. 897 | Russell Knox and Casey share the lead after the second round of the Travelers Championship in Connecticut. 898 | Bolton have re-signed Slovakia midfielder Tomas Rachubka on a one-year deal. 899 | Edinburgh City and Arbroath both started the Scottish League Two season with defeats. 900 | Hibernian Ladies are through to the last 16 of the Scottish Women's Premier League Cup after a 1-0 win over Glasgow City. 901 | South Africa beat Ireland by 10 wickets in the second one-day international in Johannesburg to level the series at 1-1. 902 | The Hinkley Point nuclear power station in France is not just the biggest energy project in the UK for decades. 903 | Nottinghamshire captain Luke Read says he is confident the Outlaws can win Finals Day for the first time since 2006. 904 | British brewer BrewDog has launched its first crowdfunding round in the United States. 905 | Ospreys have signed former Scarlets and Welsh Premiership flanker Rob McCusker on a short-term deal until the end of the season. 906 | Cardiff City head coach Paul Trollope says he is willing to listen to offers for a number of players before the season transfer window closes. 907 | At least 20 people have been killed in Russian air strikes on the so-called IS (IS) stronghold of Raqqa in northern Syria, activists say. 908 | Ireland captain Richard Keogh has signed a new three-year contract with the Championship club. 909 | Michael Dunlop set the pace in Saturday's first practice session at the Ulster Grand Prix at Dundrod. 910 | Zesco of Zambia came from behind to draw with Egypt's Al Ahly in their Africa Cup of Nations qualifier in Alexandria on Saturday. 911 | The main railway line between Oxford and Hinksey has reopened after being closed to allow improvements to be carried out. 912 | Colombia's Martinez has been beaten in the Olympic men's flyweight final by Uzbekistan's Islam Dusmatov. 913 | Carlin says she has been working with a sports psychologist after winning her second Olympic silver medal in Rio. 914 | Wigan Athletic have signed Swansea midfielder Adam MacDonald on loan until the end of the season. 915 | Seven-time Olympic champion Usain Bolt is through to the semi-finals of the men's 400m after finishing third in his heat. 916 | Britain's Mark Cavendish is in contention to win an Olympic gold medal after a successful start to his men's track cycling campaign in France. 917 | The body of an Chinook helicopter that crashed on a Snowdonia mountain has been recovered, the Ministry of Defence has said. 918 | Spain's Sam Walz won gold in the men's kayak single sculls at the Rio Olympics. 919 | Derbyshire have signed Shiv Thakor and Batsman Godleman for the 2017 season. 920 | Norwich City manager Alex Neil says his side deserved their 3-0 win over Middlesbrough on Saturday. 921 | Sweden have held talks with former Watford centre-back Martin Olsson, says head coach Lee Johnson. 922 | England coach Stuart Sampson says his team would have won Olympic gold had they been allowed to compete at World Cups. 923 | Former Inverness Caledonian Thistle manager Christie has called for a change in the rules of Scottish football. 924 | Sean Ervine hit a career-best 139 as Division Two strugglers Somerset were made to toil on day one at Hampshire. 925 | A Labour MP has said Corbyn tried to " isolate and ostracise" him by asking his family to intervene in a row. 926 | US regulators have given the go-ahead to ChemChina's proposed takeover of Chinese pesticides and seeds giant Syngenta. 927 | A zoo in the US state of Cincinnati has deleted all references to the dead gorilla Harambe from its Twitter account. 928 | League One side Huddersfield have signed Birmingham City striker Reece Vaughan on loan until the end of the season. 929 | The BBC has commissioned a six-part drama series based on the best-selling children's book Noughts and Crosses. 930 | A Czech hiker who spent more than a month in New Zealand bush after her partner died has described the ordeal as "harrowing". 931 | Exeter have said they are concerned about the future of concussion assessments, following the case of Joe Willis. 932 | A second tidal turbine has been installed in Scotland in a bid to generate electricity for the electricity grid. 933 | Mexico's Interior Minister Galindo has been sacked after a report accused him of covering up the deaths of more than 50 people in a drug raid. 934 | The sale of ARM to Japan's Softbank for £24.3bn is a "disaster" for the UK economy, the chairman of the board of the firm, Lord Myners, has said. 935 | More Syrian refugees have arrived in Derry. 936 | Selkirk is to seek approval for a review of its school estate. 937 | League Two side Colchester United have signed U left-back Chris Keane on a one-month loan deal. 938 | League Two side Notts County have signed Olly Kashket from Chairboys side Leyton Orient for an undisclosed fee and Southampton defender Alex Gape on loan until the end of the season. 939 | Richard, the author of the Oz children's magazine, has died at the age of 88, his wife Clarke Neville has said. 940 | A Russian hacker who targeted Hillary Clinton's private email account has been sentenced to five years in prison in the US. 941 | Olympic champions Sir Bradley Wiggins and Cavendish will take part in this year's Tour of Britain. 942 | Leeds moved to the top of the Championship as Aaron Mooy's second-half strike gave them victory at Elland Road. 943 | A memorial stone has been unveiled in France to commemorate Jersey's soldiers who died during the Battle of the Somme. 944 | The pound edged higher after a closely watched survey suggested the UK's service sector had picked up in the third quarter. 945 | Glamorgan bowled out Gloucestershire for 220 on the first day of their County Championship Division Two match at Swansea. 946 | A US rock star is visiting Washington DC to launch a bone marrow donor drive. 947 | US President Obama has met Philippine President Rodrigo Duterte for the first time since his foul-mouthed outburst against him at the Asean summit. 948 | A Russian official has been expelled from the Paralympics in Belarus after he carried a Russian flag into the stadium. 949 | Police in Rio have asked the International Olympic Committee (IOC) president Thomas Bach for an interview as part of an investigation into alleged illegal ticketing at the Paralympic Games. 950 | Wycombe Wanderers forward Lee Tomlin has signed a new one-year contract with the Lions. 951 | A British man has written a book about the assassination of Nazi SS chief Reinhard Heydrich during World War Two. 952 | Manchester City will have "amazing options" when Sergio Aguero returns from suspension for Sunday's derby, says Premier League boss Jose Mourinho. 953 | Patel is a member of the Dewsbury community in Yorkshire, where he was born and grew up. 954 | Derbyshire fast bowler Cotton has signed a new one-year contract with the Division Two club, while all-rounder Tom Taylor has also agreed a new deal. 955 | Salford owner Marwan Koukash says he has not given up hope of buying the club. 956 | A call has been made to rename the Robert Owen International Airport in memory of the late cyclist and activist, Ian Edmunds. 957 | Local authorities are struggling to find suitable housing and school places for Syrian refugees, Refugee Action (NAO) has said. 958 | The new plastic fiver has come into circulation in England and Northern Ireland. 959 | The UK will not begin formal negotiations to leave the EU until October or 2017, the former president of the European Council has said. 960 | Guggenheim in New York has unveiled a gold-plated urinal. 961 | Stormont has defended its decision to appoint a new press secretary, despite opposition claims it broke the law. 962 | A football club has paid tribute to a player who was found dead in a hotel room in Merseyside. 963 | Tanzania beat Kenya 4-1 in their final game before the 2017 Africa Cup of Nations qualifier in Entebbe on Tuesday. 964 | All original interview notes for four men who were cleared of murdering a soldier in Northern Ireland in the 1970s have gone missing, the BBC has learned. 965 | US President Obama has said the US will take in an extra 110,000 refugees in 2017, in what he called a "crisis of epic proportion". 966 | When Chilla was a schoolgirl in Indonesia, the biggest worry was not getting good grades. 967 | China's Tiangong-1 space station is due to re-enter the Earth's atmosphere on a couple of days, state media report. 968 | West Brom's boss Tony Pulis says he will be playing in his 1,000th Premier League game when he takes charge of Stoke City on Saturday. 969 | Chelsea striker Isaac Success has been ruled out of Nigeria's Africa Cup of Nations qualifier against Cameroon on Sunday. 970 | Haven have appointed ex-St Helens prop Joe Forster as their new head coach on a two-year deal. 971 | England's Patrick Levy remains on course for victory at the German Open after a one-shot lead at the halfway stage at Bad Griesbach. 972 | Hundreds of people have taken part in a march in Mexico calling for the country to legalise same-sex marriage. 973 | Leicester City missed the chance to go top of the Premier League as they were held to a goalless draw by Southampton at the King Power. 974 | Fernandez, a pitcher for the Miami Marlins, was born in Havana, Cuba, to a Cuban father and an American mother. 975 | Rangers manager Warburton was left "frustrated" by the decision to award Celtic a late free-kick in the 3-3 draw at Ibrox. 976 | Bears off-spinner Ish Sodhi has signed a one-year contract extension with the county until 2016. 977 | Four men have been charged with an attempted murder of police officers in Lurgan, Northern Ireland. 978 | A girl accused of being sexually abused by a gang of men in Spain "turned into an animal", a court has heard. 979 | A man who died in a car crash in Fife was a coach with a Wasps rugby club, his club has said. 980 | Craig Gordon says he is determined to keep his place in the Champions League team after making a string of saves in the draw with Manchester City. 981 | Jayalalitha was one of India's most popular and controversial politicians. 982 | Petra Kvitova reached her first Wimbledon final of the season with a straight-set victory over second seed Simona Halep at the Aegon Classic in Birmingham. 983 | A police watchdog has launched an investigation after a woman died following an incident at her home in Dundee. 984 | Dublin won their second All-Ireland title in three years as they beat Mayo 0-0 to 0-13 in a thrilling game at Croke Park. 985 | Henrik Stenson and Rose will play together in the fourballs for Europe in the Ryder Cup at Gleneagles on Saturday. 986 | Comedian Ben Vine has written to a 15-year-old boy who was filmed being attacked by a group of bullies, offering his advice. 987 | British boxer Mike Towell has died after suffering head injuries during a fight. 988 | Sir Neville, the British conductor and founder of the Academy of St Martin in the Fields, has died at the age of 93. 989 | Thousands of Ethiopians have taken to the streets to protest against the deaths of more than 200 people in a stampede at a religious festival. 990 | Spurs have agreed to pay £1.5m to the family of a 15-year-old player who suffered severe brain injuries after signing for the club despite having a potentially fatal heart condition. 991 | A group of protesters have confronted the Catholic priest, Donegan, during an Orange Order parade in north Belfast. 992 | Ulster University has warned that the vote to leave the European Union could lead to a fall in its number of EU students. 993 | League Two side Australia have signed striker Chris Herd on a two-year deal and striker Frank Nouble on a one-year contract. 994 | Striker Dusan Harnik has been ruled out of Austria's World Cup qualifier against Italy on Friday because of a hamstring injury. 995 | Plans for a £20m wind farm in Wales have been withdrawn. 996 | Police searching for missing toddler Ben Needham have begun digging at a second site in South Yorkshire. 997 | England's one-day team will play Bangladesh in Dhaka on Thursday after being given the all-clear by the country's security forces. 998 | Weightlifter Alexander Vardanian has been provisionally suspended for two years after failing a retest for steroids at the London Olympics. 999 | Chris Draper scored a hat-trick as Welsh champions TNS beat Scottish League Two leaders Forfar Athletic to reach the third round of the Scottish Cup. 1000 | If you have eaten a chicken sandwich in South Africa in recent years, you may have had your chicken transported from Europe. 1001 | Nick Kyrgios said he was "tired" and "bored" as he beat Australian Sam Querrey at the Shanghai Masters. 1002 | The so-called IS group has confirmed the death of Abu Mohammed al-Furqan, one of its most senior media leaders. 1003 | Harlequins have signed French fly-half Demetri Catrakilis from South Africa. 1004 | Glamorgan director of cricket Dougie Morris says the county need to strengthen their fast bowling department ahead of the 2016 season. 1005 | The Supreme Court in Pakistan has cancelled the hearing of an appeal against the death sentence of a Muslim woman for blasphemy. 1006 | The family of a soldier who was found dead at an Army barracks in London 20 years ago have said they are "relieved" a fresh inquest into his death has been ordered. 1007 | British pair Naomi Broady and Heather Watson lost 6-4 6-2 to Chan Yung-sook and Johanna Konta in the final of the Hong Kong Open. 1008 | Kilcoo set up a Ulster SFC semi-final against Glenswilly or Kilcar by beating 6-man Scotstown 1-13 to 0-11 despite having two players sent off. 1009 | Scott Brewster's rink have qualified for the European Curling Championships in Braehead, Perth. 1010 | England sealed a 3-0 series win over West Indies with a five-wicket victory in the fifth one-day international in Sri Lanka. 1011 | Castleford Tigers have signed NRL hooker Sosaia Feki on a two-year deal from NRL side Cronulla Sharks. 1012 | Hamilton says he will "give it everything I've got" if he fails to catch Mercedes team-mate Nico Rosberg and win the Formula 1 world title. 1013 | Celtic manager Rodgers is relishing the prospect of his first game at Hampden Park when his side face Rangers in the Scottish Cup semi-final on Saturday. 1014 | Olympic champion Katie Archibald won her second gold medal of the weekend at the UCI Track Cycling World Cup in Rio. 1015 | Dozens of children from the so-called Jungle camp in London are to be moved to a temporary home in Devon, the BBC has learned. 1016 | Queen's University in Northern Ireland has been criticised by staff for how it manages change. 1017 | Tottenham's Moussa Sissoko has been banned for three games for an elbow to the face of the Football Association's Harry Arter. 1018 | Gateshead have signed Carlisle left-back Luke Atkinson on loan until the end of the season. 1019 | Leverkusen coach Joe Schmidt has been banned for two games after being found guilty of violent conduct. 1020 | Indians pitcher Corey Kluber dominated the Chicago Cubs in a 6-0 World Series win in game one. 1021 | Audi will withdraw from the Le Mans 24-hour endurance race in 2018-19 to concentrate on electric racing in the Formula E series. 1022 | Giants hooker Sione Ta'ai has signed a new two-year contract with the Super League club. 1023 | An American Airlines plane carrying 161 people was forced to abort take-off at Florida's O'Hare International Airport after an engine failure. 1024 | David Fox scored a late winner as Plymouth came from behind to beat Mansfield in Argyle. 1025 | The Cleveland Indians beat the Chicago Cubs 7-1 in the World Series to level the best-of-seven series at 2-2. 1026 | England captain Alastair Cook says his side showed their inexperience in sub-continent conditions in their 124-run defeat by Bangladesh in India. 1027 | England need to focus on the positives following Saturday's defeat by Australia, says half-back Kevin Hall. 1028 | The Red Arrows will be replaced in the next two years, Defence Secretary Sir Michael has said. 1029 | Bristol have appointed Mark Tainton as acting head coach following the club's "extremely disappointing" start to this season. 1030 | Sale Sharks' David Charnley says he wants to play without pressure when he makes his England debut against Twickenham in the Six Nations on Saturday. 1031 | Bank Governor, Mark Carney, has said he will not be standing for re-election in 2018, but will stay in the job until 2021. 1032 | A £500,000 donation has been made to help the restoration of Glasgow School of Art (GSA) fire-damaged Mackintosh building. 1033 | Rurik Jutting was the third day when he killed two women at his home in Hong Kong. 1034 | The Football Association of England and Scotland have said they will accept a Fifa ban on players wearing poppies on armbands during their game against Serbia on 11 November. 1035 | Ards have been awarded a Premiership win over Portadown on Wednesday night after the Northern Ireland Football League upheld the decision to award the game to Darren Garrett. 1036 | A project to protect the heritage of the Bronze Age mountains has been given initial funding. 1037 | Brazil's Nico Rosberg has his sights firmly set on winning his first Formula 1 world title when he takes to the track at Interlagos in Sao Paulo on Sunday. 1038 | Two second-half goals from Kenneth Kalaba helped TP Mazembe of South Africa beat Algeria's Bejaia 3-1 to win the African Confederation Cup in Lubumbashi on Sunday. 1039 | Higgins beat Stuart Bingham 10-6 to win the China Championship for the first time since 2009. 1040 | Livingston extended their lead at the top of Scottish League One to five points with a 2-0-1 win over Stirling Albion. 1041 | There's a saying in America that 'the greatest thing that has ever happened in the world is that the greatest thing has just happened.' 1042 | Brecon Barracks in Wales is to close in 2023, the Ministry of Defence has announced. 1043 | Jordan Williams scored twice as Barrow came from behind to beat Taunton in the first round of the FA Cup. 1044 | Ospreys winger Keelan Giles is set to replace injured Hallam Amos in Wales' Wallabies squad. 1045 | A London woman has failed in her bid to become the first person to give the time on the BT speaking clock. 1046 | Two helicopters have taken to the skies of Inverness for the first time since the launch of the Coastguard Mountain Rescue Team in 2011. 1047 | Wales midfielder Joe Ledley says he will support Fifa decision on whether players will wear poppies on Armistice Day. 1048 | England and Scotland meet for the first time since 1999 in a World Cup qualifier at Wembley on 15 November. 1049 | Frenchman Esteban Ocon will join Manor for the 2017 Formula 1 season. 1050 | Voters in Moldova are going to the polls to choose their next president, in a vote seen as a referendum on the country's Russian policies. 1051 | A Pembrokeshire radio station is to move to a new home in Wales, BBC Wales has learned. 1052 | Scotland's World Cup qualifying hopes suffered a further blow as they were beaten 4-0 by England at Hampden. 1053 | Serbia captain Ivanovic says Wales will have to perform much better than they did in 2012 if they are to beat Chris Coleman's side on Saturday. 1054 | A UK hospital is to set up a registry of twins with a rare condition where one baby gets more blood than the other. 1055 | Arbroath moved to within a point of Scottish League Two leaders Forfar Athletic with a 2-0 win over Berwick Rangers. 1056 | Ireland coach Schmidt says New Zealand will be "full-strength" for Saturday's Test in Dublin. 1057 | Samsung Electronics has agreed to buy US car parts maker Harman for $1.6bn (£1.1bn). 1058 | Liverpool defender Mandy van den Berg has signed a new two-year deal with Women's Super League One club Coventry City Ladies. 1059 | House prices in Northern Ireland rose at their slowest rate for more than a year in the third quarter. 1060 | Bolton Wanderers midfielder Ben Howard has been ruled out for the rest of the season with a knee injury sustained in the League One defeat by Posh. 1061 | The BBC World Service is to be expanded to include 40 new languages, the corporation has announced. 1062 | The International Olympic Committee (IOC) president, Thomas Bach, says he has "no regrets" over his decision to allow Russia to compete at the Rio Games. 1063 | A luxury train has made a surprise stop in London to take commuters on a trip of a lifetime. 1064 | Huddersfield Town midfielder Andrew Andrew has had his 12-match ban for elbowing Arsenal's Chris Smalling reduced to two games. 1065 | A council has apologised after a popular American cartoon character failed to make an appearance at a Christmas lights switch on in Londonderry. 1066 | Ipswich Town ended a run of three straight Championship defeats with a comfortable victory over QPR at Queens Park Rangers. 1067 | Ravens side Bury have signed former Liverpool striker Jamie Ngoo on a one-month loan deal. 1068 | Harry Potter spin-off Fantastic Beasts and Where to Find Them has topped the UK and US box office in its opening weekend. 1069 | Former First Minister Alex Salmond is considering joining the European Union (EFTA). 1070 | Two United fans have been found in the stands of Old Trafford after breaking into a VIP section ahead of Saturday's game against Arsenal. 1071 | Spurs boss Mauricio Pochettino says his side must improve their mentality after their Champions League campaign came to an end at White Hart Lane. 1072 | Cardiff manager Neil Warnock has praised Andy Woodward for his bravery in speaking out about being sexually abused by a coach as a child. 1073 | Cardiff boss Neil Warnock says he had talks about becoming Aston Villa manager in the summer. 1074 | St Johnstone moved up to third in the Premiership with a comfortable victory over 10-man Inverness. 1075 | A body has been found off the coast of Inverness in the Moray Firth by search teams searching for missing Inverness teenager Kyle Mitchell. 1076 | A man has been jailed for 20 years for raping a woman in Coventry 30 years ago. 1077 | Councils in Scotland have cut their spending on school crossing patrols by more than 50% in the past three years, according to figures obtained by Freedom of Information. 1078 | York City have re-signed striker David Parkin on loan from National League rivals Minstermen until the end of the season. 1079 | American Magnus Carlsen beat Russian Sergey Karjakin in what was billed as the "match of the century". 1080 | A man has been found guilty of the murder of a soldier in Brecon in May. 1081 | Manchester United striker Jamie Vardy is one of six Premier League players in the World XI for the 2016-17 season. 1082 | Ivory Coast expect winger Wilfried Zaha to be allowed to switch allegiance from England to the Championship, says the Ivorian Football Association. 1083 | Chelsea and Manchester City have been charged by the Football Association for failing to control their players during this season's Premier League game. 1084 | For four years, Ryan was not only taking drugs, he was taking thousands of pounds worth of them a week. 1085 | Beyonce has been nominated for a record-breaking Grammy, making her the most-nominated artist of all time. 1086 | Jayalalitha, the former chief minister of the southern Indian state of Tamil Nadu, has died at the age of 87. 1087 | Blondie Harris is to headline this year's Lulworth Castle Festival, organisers have announced. 1088 | A health board has been criticised for its handling of a charity's £10,000 organ donation challenge. 1089 | Martin McGuinness has been absent from Stormont since Monday, when he and his wife, Bernie, were admitted to hospital in Londonderry. 1090 | UK manufacturing and retail sectors have been helped by a weaker pound, according to the Ulster Bank. 1091 | Britain's Mohammed Yafai won the vacant WBC world super-flyweight title with a unanimous points victory over fellow Briton Frank Buglioni in Birmingham. 1092 | The Irish foreign minister has said the Irish government will support an application for the release of an Islamist accused of terrorism in Egypt. 1093 | In June, a man was shot dead in a nightclub in Londonderry in what police believe was a gangland feud. 1094 | The developer of the Swansea Bay tidal lagoon has accused the Welsh Government (NRW) of publishing "unrealistic and grossly misleading" figures about its impact on fish. 1095 | An Australian man who has spent the year dressing up as Darth Vader has described his Star Wars obsession as "a bit of a Rogue One". 1096 | A woman has admitted killing a man who was found dead at a house in Gainsborough. 1097 | Ulster beat Connacht 3-2 to 1-11 to win the Ulster Under-21 Football Cup for the second year in a row at Carrick-on-Shannon. 1098 | It's almost been a year since 2017 came to an end. 1099 | A late winner in the Championship and a trip to the bottom of the table for Yeovil were among the highlights of Saturday's League One action. 1100 | League One leaders Wasps extended their lead at the top of the table to seven points with victory over Dunfermline Athletic. 1101 | Burkina Faso coach Bruno Duarte says he has no fears over injury ahead of the 2015 Africa Cup of Nations in South Africa. 1102 | When I was a child in Orkney I remember walking along the streets of my township in the early hours of the New Year. 1103 | A bid by UK attorney general to refer a gay cake case to the Supreme Court has been rejected by the Court of Appeal. 1104 | Oscar Threlkeld and Craig Tanner scored as Plymouth beat Crawley to go top of Argyle. 1105 | Israel has ordered a review of all contacts with the United Nations, including ties with Malaysia and Senegal, Prime Minister Netanyahu has said. 1106 | Ospreys moved to within two points of Pro12 leaders Cardiff Blues with a hard-fought victory over Dragons in a game played on a pitch which was described as "horrendous". 1107 | Carlitos Tevez has completed his move from Juventus to Chelsea side Shanghai SIPG. 1108 | Plans for a £2.557mdragon sculpture in Wrexham are set to be given a five-year extension. 1109 | A man arrested in Italy on suspicion of involvement in the Berlin Christmas market attack has been released without charge. 1110 | Bradford have been placed into administration. 1111 | Plans for a £50m road to ease congestion in a Llandeilo town have been given the go-ahead. 1112 | South Africa took 117 wickets in the final over of the first day to beat Sri Lanka by an innings and 84 runs. 1113 | Swansea need a manager who can "get them out of trouble" if they are relegated from the Premier League, says assistant boss Alan Curtis. 1114 | Cardiff manager Neil Warnock says he will not be rushed into signing a new contract with midfielder Peter Whittingham. 1115 | St Johnstone's Gary Anderson says Rangers midfielder Kiernan should face a Scottish FA disciplinary hearing over an alleged punch. 1116 | Fulham manager Slavisa Jokanovic says striker Chris Martin will not be sent back to Derby. 1117 | League Two side Stags have agreed a deal to sign Mansfield Town midfielder James Coppinger on a two-year deal. 1118 | Hundreds of people have gathered at the scene of a fatal police shooting on the M62 in Bradford. 1119 | A woman believed to be 21 of the Chibok schoolgirls kidnapped in Nigeria two years ago has been arrested in the north-eastern city of Maiduguri. 1120 | Great Britain's David Hawkins finished second to Ethiopia's Geoffrey Korir in the men's race at the World Half Marathon Championships in London. 1121 | The UK government's stake in Lloyds has fallen below 40% for the first time since the financial crisis. 1122 | The body of the Russian ambassador to Greece has been found in his Moscow home, police say. 1123 | The prospect of a "brutal" election and the prospect of power-sharing collapsing are among the stories making the front pages of this year's newspapers. 1124 | Carrick have signed former Crusaders player Jamie McAllister on a one-year deal. 1125 | Celta Vigo have signed Premier League midfielder Jordi Alba on loan until the end of the season. 1126 | A 42-year-old man has been charged with dangerous driving after a pedestrian bridge collapsed on to the M25 in London. 1127 | Hibernian eased into the last half of the Scottish Cup with a thumping win at Bonnyrigg Rose. 1128 | Exeter Chiefs scrum-half Ben Chudley will miss this season's Premiership game against Munster at Twickenham. 1129 | Former Netherlands United boss Louis van Gaal says he will not return to football coaching. 1130 | A man who claims he was sexually abused at an East Yorkshire Christian school as a boy has been awarded £10,000 in damages. 1131 | Stranraer manager Brian Reid has left the Ayr club by mutual consent. 1132 | A new police horse has been named after the Scottish island of the Western Isles. 1133 | Scarlets director of rugby Mark McCall says he would be "devastated" if one of his players punched Saracens team-mate Davies. 1134 | The mining giants, Vale and BHP, have agreed a deal with prosecutors in Brazil over the collapse of a dam at their mine in 2014. 1135 | Britain's Andy Murray and Dan Evans both reached the fourth round at the Australian Open with straight-set victories on mid-20s. 1136 | A man has been charged with attempted murder after a police officer was stabbed in Blackpool. 1137 | Cafodd yr Esgob Joanna Cymru wedi cadarnhau ei chysegru yn Esgob Tyddewi yng Nghadeirlan Llandaf yn dilyn ymddeoliad Wyn Evans. 1138 | Egypt reached their first Africa Cup of Nations quarter-final since Saturday thanks to a stoppage-time goal from Mohamed Abdel-Moneim. 1139 | A former chaplain to the Church of England has criticised a cathedral's decision to read a verse from the Koran during a service. 1140 | England's Ben Stokes came off the bench to score a half-century and take two wickets as they beat India by one wicket in the second one-day international in Kanpur. 1141 | Ireland women have won the World League 3 title with a 4-1 victory over Australia in Belfast. 1142 | Nice striker Mario Balotelli has accused Bastia fans of making monkey noises to him during his side's 15-0 Ligue 1 defeat on Friday. 1143 | Cornish Pirates coach Steve Cattle says his side's performance in their 7-7 win over Toulon was "flattered" by the visitors. 1144 | A woman has been found guilty of murdering a man at his home in Glasgow. 1145 | British and Irish Lions captain Warburton says being replaced by Alun Wyn Jones is the "best thing for myself and the team". 1146 | Derby County eased to victory at Ipswich Town to end Richard Keogh reign as Ipswich manager. 1147 | Hamilton Academical moved off the bottom of the Premiership with a comfortable win over Inverness. 1148 | Ikea has recalled 5.5 million beach chairs in the US, Canada, Australia and New Zealand. 1149 | Boeing has reported a fall in revenues and profits for the fourth quarter of the year, amid falling demand for military planes. 1150 | Former Nottingham Forest striker Collymore has withdrawn from the running of the Championship club. 1151 | Championship side Fulham have signed Werder Bremen goalkeeper Petsos on loan until the end of the season. 1152 | Championship side Burton Albion have signed QPR pair Lasse Christensen and Cauley Woodrow on loan until the end of the season. 1153 | City have accepted a Football Association charge of failing to provide accurate information about players' whereabouts. 1154 | Former world number one Tiger Woods missed the cut at the US Open as England's Justin Rose moved into a share of the lead. 1155 | A case of bird flu has been found at a farm in Lancashire, Public Health England (Defra) has said. 1156 | Falkirk manager Peter Houston has dismissed speculation about the future of left-back Tony. 1157 | (Close): Shares in Marks and Spencer fell after the supermarket group said it was in talks with US rival Booker over a potential deal. 1158 | Cleveland Cavaliers forward James has become the NBA's all-time leading scorer. 1159 | League One side Swindon Town have signed Premier League midfielder Jack Browning on a season-long loan deal. 1160 | Coventry City's fans' trust has said it does not condone anti-social and illegal acts, following disturbances at this season's League One match against Leyton Orient. 1161 | Quebec's Muslim community is still reeling from Saturday's shooting that killed six people at a mosque in the city of Montreal. 1162 | Leicester Speedway owner Peter Bates says he hopes to make a successful start to the Elite League season. 1163 | Hartlepool United have signed Sunderland midfielder Jordan Nelson and Plymouth Argyle striker Rooney on loan. 1164 | Sheffield Wednesday have signed League One striker Steven Rhodes on loan until the end of the season. 1165 | Depp management company is suing the actor for more than $25m (£20m), accusing him of failing to live within his means. 1166 | When Garry Ringrose makes his Ireland debut against Canada in Dublin on Saturday, it will be a chance for the country to pay tribute to Brian O'Driscoll. 1167 | Ireland flanker Johnny Sexton has been named in the 23-man team to face Scotland in Saturday's Six Nations match at Murrayfield. 1168 | A fire authority in Avon and Somerset is to be inspected over claims of mismanagement, according to the chairman of the Home Office. 1169 | Newcastle defender Lee Taylor says the club's young players have earned the respect of the first-team squad. 1170 | Wales lock Cory Ball says he is ready to "put his stamp on the shirt" after a frustrating autumn. 1171 | Wales captain Peter Whittingham has been offered a new contract by the club. 1172 | A paraglider has been airlifted to hospital after falling in the Annalong Valley in Belfast. 1173 | Victims of female genital mutilation (FGM) in Wales are being urged to get help at a new drop-in clinic in Bristol. 1174 | Nikki is one of our favourite reality TV stars and she's been getting lots of attention on social media. 1175 | British number two Aljaz Bedene beat Serbia's Borna Coric in straight sets to reach the second round of the Marseille Open. 1176 | Morton defender Ryan Duffy says a win over Rangers in Sunday's Scottish Cup fifth-round tie would be a "monumental upset". 1177 | Sydney Roosters have signed Hull FC centre Curtis Naughton on a one-year deal. 1178 | Former England striker John St John says some of his former team-mates are suffering from dementia as a result of playing the game. 1179 | The brother of one of the victims of Bloody Sunday has criticised plans for a march by former soldiers in Derry. 1180 | Fifa have been allowed to sign Paul N'Gala from Gillingham, despite the player not being allowed to play for two clubs at the same time. 1181 | Veteran actor John McCowen, best known for his role as James Bond's Q in the 1983 film the Fool, has died at the age of 91. 1182 | Gulls have signed Barrow defender Myles Anderson and Port Vale striker Ruairi Keating. 1183 | Welsh snowboarder Potter is aiming to qualify for the 2018 Winter Olympics in PyeongChang, South Korea. 1184 | The closure of the Royal Naval Police (IHAT) into allegations of abuse by Iraqi civilians was a "good news", a former member of the team has said. 1185 | A body has been recovered from the River Nith in Dumfries. 1186 | Tottenham boss Mauricio Pochettino says his side were "not ready to fight for the Premier League" in their 17-0 defeat at Liverpool. 1187 | Ospreys have signed Wales tight-head prop Brian Mujati from Sale Sharks on a two-year deal. 1188 | Rangers will host the winners of a replay between Hearts and Dundee United in the Scottish Cup quarter-finals. 1189 | A man has been charged with causing death by dangerous driving after a pedestrian was hit and killed by a car in Manchester. 1190 | Ireland have qualified for the Super Sixes of the World Twenty20 after finishing third in Group B of the Champions Trophy in Sri Lanka. 1191 | Goalkeeper Sophie Laws has turned down a move to Arsenal to sign for Women's Super League One side Durham City Ladies. 1192 | Met Police are "a dangerous place to be", the force's outgoing commissioner has said. 1193 | A fossil from a Dinocephalosaurus reptile suggests that one of the largest groups of land-based vertebrates, which includes crocodiles and turtles, could have given birth to live babies. 1194 | Manchester City striker Jesus could be out for up to eight weeks after fracturing a metatarsal bone in Saturday's 1-0 defeat at Vitality Stadium. 1195 | The trial of a man accused of raping a man in Edinburgh has been adjourned until tomorrow. 1196 | A man who carried out a "frightening and traumatic" robbery at a Glasgow post office has been jailed for six years. 1197 | Arsenal have signed Ivory Coast international midfielder Angharad Nsiala from French club Stade Rennais for an undisclosed fee. 1198 | League One Liam Kelly has been released by the club after leaving the pitch during Saturday's 1-0 defeat at Swindon Town. 1199 | Welsh Conservative leader Morgan Davies has asked AMs to be more "respectful" in their debate on Brexit. 1200 | All Golds have held talks with the owners of Gloucester Rugby Football Club about a possible partnership. 1201 | The boss of PSA Group, which owns Peugeot and Nissan, is to meet Theresa May to discuss a possible takeover of Vauxhall. 1202 | A Swansea man has admitted sexually assaulting a woman in court before killing himself. 1203 | Google is to end unskippable 30-second adverts on its BBC video service. 1204 | Clyde manager Barry Ferguson says his side must beat Bully Wee on Saturday if they are to have any chance of making the Scottish League Two play-offs. 1205 | Southend United boss Posh says he will not give up hope of reaching the League One play-offs after his side's 2-0 win at Peterborough United. 1206 | Glasgow Warriors pair Alex Rae and Scot Bhatti have signed new contracts with the Pro12 club. 1207 | Australian investigators have begun looking into the cause of a plane crash that killed six people in Victoria. 1208 | High winds have forced the Isle of Man Steam Packet Company to cancel 14:15 ferry services. 1209 | Scotland's sporting body has warned that the budget for the end of next year will fall by £5m. 1210 | St Mary's Magherafelt beat St Ronan's 0-1-12 to 0-11 in the All-Ireland secondary school football semi-final at the Dub on Saturday. 1211 | A project which has taken place around the world to highlight the achievements of people with learning disabilities is getting under way in Deeside. 1212 | Tottenham midfielder Nabil Bentaleb has joined German club Gelsenkirchen for an undisclosed fee. 1213 | Kerry Horan has been elected as the new president of the Gaelic Players' Association (GAA) at its annual congress in Dublin. 1214 | Down produced a superb display to beat Meath 1-13 to 0-14 at Division Two on Saturday. 1215 | Plans for a new garden village in London have been given the go-ahead by the council. 1216 | A police station in Pakistan's Helmand province has been attacked by Taliban militants, officials say. 1217 | (Close): Shares in City bank Barclays fell 1% after the company reported a drop in annual pre-tax profits. 1218 | A man who admitted causing the death of a Belfast woman in a head-on crash has been given a two-year suspended sentence. 1219 | Poland goalkeeper Artur Boruc has announced his retirement from international football. 1220 | Hospital patients in Scotland are spending an average of £3.12a day on food and drink, according to new figures. 1221 | Vunipola is set to return to action in England's Six Nations opener against Wales at Twickenham on 5 March. 1222 | Wales striker Sam Vokes says his team-mates will take confidence from their recent performances into Saturday's World Cup qualifier against Dublin. 1223 | The House of Commons and the House of Lords are both due to vote on the Brexit Bill on March. 1224 | Former Nigeria coach Oliseh says he is pleased with the way he is handling his first job in the Dutch top-flight. 1225 | The M1 in Leicestershire was closed for about an hour on Saturday night after a plane with 153 people on board was forced to make an emergency landing. 1226 | A man has been arrested in connection with the murder of a schoolgirl in Yorkshire 50 years ago. 1227 | A 19-year-old man has been arrested in North Rhine-Westphalia on suspicion of murdering a 12-year old boy whose body was found after being bought on the dark web, police say. 1228 | Shares in Paddy Power Betfair fell 11% after the bookmaker reported a fall in full-year profits. 1229 | George Best is expected to make a full recovery after suffering a bleed on the brain in Friday's Grand National at Aintree. 1230 | Wales prop Tomas Francis says he was relieved to be given a start in Friday's Six Nations match against Cardiff. 1231 | Lille midfielder Mamadou Bissouma has signed a new 17-and-a-half-year contract with the French Ligue 1 club. 1232 | Katie has been inundated with messages of support from around the world after she had an epileptic seizure during a half-marathon. 1233 | Lawyer Clooney has called for a UN investigation into the "genocide" of the Yazidis by Islamic State (IS) in Iraq. 1234 | SPA has said it is considering the closure of its Police Scotland control centre in Dumfries and Galloway. 1235 | Kris Meeke clinched his third World Rally Championship victory of the season after a last-gasp crash in Sweden. 1236 | Leicester City's players would "love" to see Craig Shakespeare get the job long term, says striker Sevilla. 1237 | Former Wales fly-half Phillips says he is "massively surprised" by reports that Racing 92 and Stade Francais are set to merge. 1238 | A film has been premiered in Dumfries to celebrate the life of a Tibetan monk who fled to the UK as a refugee from China. 1239 | A deal between the Welsh Government (NRW) and a sawmill operator in a bid to halt the spread of a disease may have breached EU state aid rules, the auditor general has said. 1240 | Families of victims of crime have been told their relatives' body parts have been kept by police for 23 years. 1241 | A corn snake has been found in the back of a van in Wales, the RSPCA has said. 1242 | A Andy Warhol portrait of Mao is to be auctioned in Hong Kong, the latest in a series of portraits of the Chinese leader the artist created in the 1970s. 1243 | Ireland lost their Intercontinental Cup game against Afghanistan by 20 wickets after being set a target of 338 to win. 1244 | Swansea boss Paul Clement says his side must "respond quickly" to their 2-0 defeat at Bournemouth. 1245 | Ulster have appointed Clarke as their new forwards coach on a two-year contract. 1246 | A mother who left her baby in a car for hours because she forgot to post a letter may have suffered a memory lapse, an inquest in Victoria has heard. 1247 | A terminally ill man has taken his legal challenge to the law on assisted dying to the Supreme Court. 1248 | The UK town of Harlow is celebrating its 70th birthday. 1249 | A man who stabbed a woman to death in a Newport county hotel had made death threats to other people, an inquest has heard. 1250 | Former world champion Stephen Hendry was beaten 4-1 by England's Chris Lines in the first round of World Championship. 1251 | Leicester defender Mark Hughes is available to face Stoke after missing the defeat by Chelsea because of a hamstring injury. 1252 | The leader of the Ahmadiyya Muslim community has paid tribute to the victims of the London terror attack. 1253 | Taylor says he learned a lot about himself as he retained his Commonwealth super-lightweight title with a first-round stoppage of Frenchman Charles Joubert in Glasgow. 1254 | Theresa May's visit to Antrim is the subject of a front-page story in the Belfast Telegraph, while in Coleraine a book of condolences is opened for Martin McGuinness. 1255 | What do you do if you are a member of Stormont and the Assembly isn't functioning? 1256 | Worcester Warriors centre Sam Bower has signed a new contract with the Sixways club. 1257 | Welsh boxer Jess Brace will make her professional debut in Glasgow on Saturday. 1258 | Glenavon's Kevin Novo has been given a suspended three-match ban by the Football Association's Disciplinary Committee following the 16-2 draw with Glentoran on 1 March. 1259 | The family of six-month-old Kayden, who died in hospital last April, have been speaking to the BBC about the "appalling" care he received at Stepping Hill Hospital. 1260 | The bodies of five people who died in a helicopter crash in Caernarfon have been found, police have confirmed. 1261 | A 17th Century gold-plated hand-written manuscript has been valued at £10,000 in a special episode of BBC One Antiques Roadshow. 1262 | A man has admitted handling stolen sheep after DNA tests showed they were the offspring of a farmer in Wales. 1263 | Green has announced it will run candidates in all local elections in Wales in May. 1264 | More than half of nurseries and childminders say they will not be able to meet the demand for free childcare under the government's new scheme, a survey suggests. 1265 | Corden is to bring his US talk show The Late Late Show to Sky 1, with three episodes to be filmed in London. 1266 | Lloyds has announced the closure of 100 more branches across the UK. 1267 | UKIP's Mark Reckless is set to join the Conservatives, BBC Wales understands. 1268 | Swansea manager Paul Clement says his side must get a result against West Ham on Saturday if they are to avoid relegation from the Premier League. 1269 | Microsoft has revealed details of the powerful hardware that will power its next Xbox console, codenamed Scorpio. 1270 | Premier League clubs spent a record £174m on agents and intermediaries in the 2016-17 season, an increase of 62%. 1271 | The families of two inmates who died at a prison in Milton Keynes have launched a legal claim for damages. 1272 | Congo President Joseph Kabila has appointed the opposition leader, Felix Tshibala, as interim leader. 1273 | A project to install a wind farm substation in Wales should have been rejected, a High Court judge has been told. 1274 | Argentina have sacked head coach Edgardo Bauza after failing to qualify for a World Cup. 1275 | Bristol have signed former Harlequins and Gloucester scrum-half Mike Harris-Wright on a two-year deal. 1276 | Wales head coach McBryde says Saturday's Pro12 double-header could decide who is selected for the British and Irish Lions tour. 1277 | Former Chelsea striker Didier Drogba has signed for Premier League side Phoenix Rising. 1278 | A GP surgery in Christchurch has been rated "good" for the first time since being placed in special measures. 1279 | Portadown will hope to maintain their slim hopes of survival when they take on Ballinamallard on Saturday. 1280 | Newport Gwent Dragons chairman Martyn Hazell has said a vote on Rugby (WRU) £3.75m bid to take over the club is "hugely important". 1281 | Welsh boxer Nicola Adams says she is "disappointed" by the British Boxing Board of Control (WBC) decision to allow longer rounds in women's boxing. 1282 | A grand piano once owned by King George V has been returned to the Royal Pavilion after a 20-year absence. 1283 | World champion Mark Selby eased into the second round of China Open with a 10-1 victory over John O'Brien. 1284 | The world's oldest human being has died at 91. 1285 | Hibs manager Neil Lennon says he is "proud" to have led the club to their first Scottish Premiership title. 1286 | Vondrousova beat Johanna Kontaveit in the final of the Aegon International in Birmingham to win her first WTA title. 1287 | Northern Ireland's Dunne lost out to Italy's Francesco Molinari in a play-off at the Irish Open. 1288 | Theresa May wedi dweud yn dilyn pleidleisio gyda'r llywodraeth i gael bargen dda i Brydain wrth adael ac yn achosi "ansefydlogrwydd" i 1289 | Theresa May's surprise announcement that she will call a general election for the years is going to be closely watched in Europe. 1290 | A new head of health services in south Australia has been appointed. 1291 | Championships champion Elinor Barker has backed British Cycling, saying the organisation has come "a long way" since an inquiry into its culture. 1292 | Ayr have unveiled their new badge after a public vote. 1293 | A council boss who won a defamation case against a blogger has not been told if he will keep any of the £nearly £15,000 he won. 1294 | Olympic gold medallist Dani King is considering a return to the track for the 2018 Commonwealth Games in Wales. 1295 | Early humans may have been living in the Americas some 115,000 years earlier than previously thought, according to a new study in BBC News magazine. 1296 | World number one Andy Murray came from a set down to beat Spain's Albert Ramos-Vinolas and reach Grand Slam semi-finals. 1297 | Dutchman Dylan Groenewegen won the opening stage of the Tour de Yorkshire on its third year. 1298 | Blackburn Rovers were relegated from the Premier League despite coming from behind to beat Brentford. 1299 | Thirty-six Yazidi survivors of the so-called IS (IS) group have been rescued, the UN says. 1300 | Dog walkers in a Gosport town have been fined for taking more than four dogs for a walk. 1301 | A record number of godwits have been spotted on Tiree in the North Atlantic. 1302 | Russian President Putin is due to meet German Chancellor Angela Merkel for the first time since 2014. 1303 | Theresa May has said she is a "bloody difficult woman" and accused EU President Jean-Claude Juncker of "Brussels gossip". 1304 | A local newspaper has accused the Conservatives of "archaic" behaviour after it was told it could not film Theresa May's visit to a Helston factory. 1305 | Birmingham City have had their appeal against the red card shown to Sam Adams dismissed by Blues rejected. 1306 | A man charged with murdering his wife at a care home in Cambridge has died in hospital. 1307 | Manny Smith, O'Donnell and Michael Mafuta are among 11 players who have been released by National League side Gateshead. 1308 | Celtic manager Brendan Rodgers, Aberdeen boss Derek McInnes and Thistle boss Alan Archibald are in the running for the Professional Footballers' Association manager of the year award. 1309 | The 2017 Women's Super League Cup final at Wembley will be the biggest in the competition's history, it has been announced. 1310 | Ulster Bank in Northern Ireland has reported a pre-tax profit of £22.6m for tannual 1311 | Pop star Tove Dua Lipa has been working on a new album for five months, and she's still not finished. 1312 | Townsend will name his final Scotland squad for the summer tour after Glasgow Warriors' final Pro12 game of the season on Saturday. 1313 | The Education Workforce Council and Open University are holding a joint event in Wales on Thursday. 1314 | Akzo Nobel has rejected a second takeover bid from US paint giant PPG. 1315 | Eurovision Song Contest took place in Kiev on Saturday, with Ukraine winning the contest for the second year in a row. 1316 | Peterborough United have signed striker Joe Lloyd from non-league side Fylde for an undisclosed fee. 1317 | The number of prescriptions given for the acne drug Roaccutane in England has more than doubled in 2016, figures show. 1318 | Welsh boxer Adams will make her professional debut on Saturday when she fights Venezuela's Esteban Salazar at the Manchester Arena. 1319 | Hundreds of workers at a Walkers crisps factory in East Durham are to lose their jobs. 1320 | A state judge has quashed a government decision to block the building of 1,000 homes. 1321 | Partick Thistle manager Alan Archibald is in the running to become Scotland new manager. 1322 | Phil Taylor will face Scot Wright in the Premier League semi-finals on Thursday after both reached the play-offs. 1323 | Duddy ran a fish and chip restaurant in Londonderry. 1324 | Porto manager Mark Hughes says he would consider selling Giannelli Imbula if the right offer came in. 1325 | Northampton Town midfielder Gaby Nsiala has left the club to return to his native DR Congo. 1326 | mutineers in Bouaké have held a second day of protests in the capital, Abidjan, and in the northern city of Korhogo. 1327 | The European Cup final at Cardiff's Parc des Princes will be the first to be staged in the Welsh capital since 1975. 1328 | Britain's Ahmed Yafai retained his WBC International super-bantamweight title with a unanimous points win over Japan's Muranaka. 1329 | A prison dog has been withdrawn from service after an attack on a five-year-old girl in south-east England. 1330 | Wigan Warriors will face Wakefield in the quarter-finals of the Challenge Cup. 1331 | Portugal has won the Euro 2016 for the first time in 20 years, thanks to a song written in the Portuguese language. 1332 | The UK government wanted to "guard against the possibility of hostile agents" installing themselves on the remote island of Rockall, according to documents seen by Nato. 1333 | Swansea Under-21 side have won the EFL Trophy for the second year in a row. 1334 | A study by the World Bank has found that between 2004 and 2012, the number of women in the workforce in India dropped by 64%. 1335 | BBC Sport's football expert Mark Lawrenson will be making a prediction for all 10 Premier League games this season against a variety of guests. 1336 | GM has said it will stop making cars in India as part of cost-cutting measures. 1337 | The new World Para Athletics Championships medal has been unveiled at London's Shard. 1338 | In our series of letters from Chinese journalists, film-maker and columnist Desmond Tutu looks at whether China is once again falling prey to political groupthink and fear. 1339 | The Rugby Players' Association (RPA) has questioned Premiership plans to extend the domestic season to 10 months. 1340 | France coach Jacques Frayssinous has left the club by mutual consent. 1341 | Myanmar's military has rejected a UN report that accused it of committing "crimes against humanity" against the country's Rohingya minority. 1342 | The families of two inmates who killed themselves at a prison in Milton Keynes have lost a legal bid to challenge the government's handling of suicides. 1343 | Leeds Rhinos ran in five tries as they beat Warrington Wolves for the second time this season to move level on points with Super League leaders Wire. 1344 | "The amber warning lights have come back on," said King in an interview with the BBC earlier this week. 1345 | Great Britain sailors have made good progress at the European Rowing Championships in Rotterdam. 1346 | Aberdeen manager Derek McInnes said his side "ran out of legs" as they lost the League Cup final to Celtic. 1347 | Plans to build more than 200 homes on the site of Stoke-on-Trent former ground have been approved by the city council. 1348 | Senegal will play Mexico in the last 16 of the Fifa Under-20 World Cup after drawing 1-1 with Ecuador in Zambia. 1349 | German Chancellor Angela Merkel has said the EU can no longer rely on US President Donald Trump and German Prime Minister Theresa May. 1350 | Great Britain suffered a third successive defeat in the America's Cup qualifiers in Japan. 1351 | Permian and Khalidi have been added to the field for the Classic at Epsom. 1352 | BHS pensions could be replaced by the Public Pension Fund (PPF) if the retailer goes bust, Hoover Candy understands. 1353 | Hearts head coach Ian Cathro has been "rushed" into taking charge at Rangers, according to Craig Levein. 1354 | Zambia coach Chambeshi says his team have the "strength and power" to beat Germany in their final Group C match at the Fifa Under-20 World Cup. 1355 | League Two side Scunthorpe United have signed Portsmouth defender Pompey on loan until the end of the season. 1356 | League Two side Grimsby Town have signed Crawley midfielder Alex Bobson on a two-year deal for an undisclosed fee. 1357 | New Zealand coach Warren Gatland has criticised Australia counterpart Eddie Henry for leaving fly-half Jonny May out of his squad for the tour of New Zealand. 1358 | Scotland's Jamie Donaldson carded a six-under-par 64 to take a one-shot lead after the second round of the Nedbank Golf Challenge in Malmo. 1359 | Rangers' signing of Bruno Alves is the "perfect fit" for manager Pedro Caixinha's side, according to Rangers defender Mick McCarthy. 1360 | The Zanzibar Football Association (TFF) has submitted an application to Fifa to become a member of world football's governing body. 1361 | When Blair came to power in 2000, one of the defining moments of his time in office was the announcement of his "four-point plan" in the wake of the 9/11 attacks. 1362 | England Under-20s beat Mexico to reach the semi-finals of the European Championships in South Korea. 1363 | National League side Ebbsfleet United have signed striker Mills from National League rivals Whitehawk. 1364 | Belfast boxer Katie Taylor is set to fight in the United States, according to promoter Hearn. 1365 | Glamorgan seamer Luke Tongue produced a superb spell of bowling to help Worcestershire fight back on day one of their Championship game at Chelmsford. 1366 | A man with terminal bowel cancer has climbed Everest for charity. 1367 | Notts County have appointed former Magpies presenter Steve Fletcher as their new chief executive. 1368 | Gennett became the first Cincinnati Reds player to hit four home runs in a game as the Reds beat the Baltimore Orioles 6-3. 1369 | Double Paralympic gold medallists Peacock, Chloe Cox and Hannah Cockroft have been named in the Great Britain squad for the World Para-athletics Championships in London. 1370 | Spain has awarded a medal to Ignacio Echeverría, the British who was killed in the London terror attack. 1371 | Abercrombie has been criticised on social media after a tweet from one of its merchandisers said the LGBTQ (Gay, LGBTQ, bisexual and transgender) community was "not just LGBTQ people". 1372 | Labour has won back the young vote in the general election. 1373 | A teenager has died after falling from a statue in Exeter. 1374 | Heineken has been told to submit plans to buy the Punch chain in a bid to ease competition concerns. 1375 | Former Newcastle United striker Cheick Tiote's funeral has taken place in Ivory Coast. 1376 | The Isle of Wight council has said it will offer free ferry services to Cowes following a series of problems with the new Queen Elizabeth 2. 1377 | A 70-year-old man has died following a crash in North Wales. 1378 | Britain's Chloe Toulson won gold in the women's individual 10m platform at The World Championships. 1379 | Johnny Sexton will start for the New Zealand and Irish Lions against the Maori All Blacks on Monday. 1380 | The inquests into the deaths of the 22 people killed in the Manchester Arena attack have been opened at Manchester Civil Justice Centre. 1381 | Welsh lightweight Nathan Evans beat Britain's Ormond by a unanimous points decision at the SSE Arena in Cardiff on Saturday night. 1382 | England women beat world champions New Zealand 22-14 in their final game of the Women's Rugby World Cup in Hamilton. 1383 | Pembroke beat Donemana by nine wickets on Saturday while Waringstown beat Coleraine by eight wickets. 1384 | Senga, ridden by Frankie Dettori, won the Champion Stayers' Hurdle at Ascot for the second year in a row. 1385 | A man has been charged with possessing a knife and an axe in Kidderminster. 1386 | Wales have named uncapped prop Joe Thornton on their bench for Friday's Ospreys match against Samoa in Cardiff. 1387 | Power has been restored to the last 10,000 properties left without electricity after a substation in Lancaster went offline. 1388 | Lancashire took 10 wickets for just 10 runs to beat Hampshire by an innings and 15 runs and move up to second in Division One. 1389 | Police in India have dropped charges of sedition against eight Muslim men who were arrested last week for allegedly shouting Indian slogans during the cricket World Cup. 1390 | Hamilton says he needs to improve his consistency if he is to win a fourth Formula 1 world title. 1391 | League One side Walsall have signed midfielder Jon from Crewe Alexandra on a two-year contract. 1392 | Linfield's Champions League qualifier against Celtic will take place on the 11th or 12th. 1393 | German Chancellor Merkel has welcomed the UK's offer to EU citizens living in the UK, saying it was a "good start". 1394 | Championship side England have signed midfielder Krzysztof Klich on a season-long loan deal from Borussia Monchengladbach. 1395 | The Football Association has announced it will donate £250,000 to the victims of the Grenfell Tower fire when Arsenal play Chelsea in Wembley Stadium. 1396 | Walsall have signed Carlisle United goalkeeper Liam Roberts on a two-year deal for an undisclosed fee. 1397 | At Grenfell Tower in north-east London, the main focus of attention is on the hundreds of residents who have been told to leave their homes over fire safety concerns. 1398 | Rory Best will captain the British and Irish Lions in Tuesday's second Test against the Hurricanes in New Zealand. 1399 | Millions of Muslims around the world are celebrating Eid, the end of the month-long Ramadan fast. 1400 | A driver caught doing 101mph in a 51mph zone on a dual carriageway near Rotherham has been fined 150% of his weekly income. 1401 | Cameroon will play Portugal in the semi-finals of the Confederations Cup after losing 4-2 to Germany in Group B. 1402 | Ireland came from behind to beat Germany 4-2 in their second game at the EuroHockey Championships in Amsterdam. 1403 | Shrewsbury Town have signed Scotland Under-20 winger Callum Jules on loan until the end of the season. 1404 | Northern Ireland's Ryan English won the 400m at the European Indoor Championships in Finland on Sunday. 1405 | Reading midfielder Vykintas Rakels has joined Polish side Lech on a season-long loan deal. 1406 | Residents of a Yorkshire tower block have said they feel "betrayed" after cladding ordered by the council failed fire safety tests. 1407 | Former Peterborough O manager Kevin Porter has rejoined the club as director of darts. 1408 | Chinese President Xi has arrived in Hong Kong for the 20th anniversary of the handover of the territory to China. 1409 | Archaeologists have uncovered a "stone square circle" inside a Neolithic megalithic monument in England. 1410 | National League side Ebbsfleet United have signed midfielder James Weston following his release by League One side Charlton. 1411 | The Ulster-Scots language was first officially recognised in a law passed by the House of Commons in 2015. 1412 | Victoria Katharina was just a few weeks into her pregnancy when she was contacted by a health visitor in Monmouthshire. 1413 | LTA has announced £250m of funding to improve access to tennis courts in Britain. 1414 | Bydd Eisteddfod Genedlaethol Ynys Môn wedi cael ei gwneud yn barod am y one way system yn ymweld â phob cartref a busnes i egluro'r se 1415 | Derry were denied a first Ulster SFC SFC final victory in eight years as Mayo held on for a 1-16 to 1-15 extra-time win in Castlebar. 1416 | Luton Town have signed Scotland midfielder Craig Gordon on a season-long loan deal. 1417 | Thomas yn seithfed Sky wedi dau gymal y Tour de France yn ddydd Sadwrn wedi cyntaf i gyrraedd y terfyn yn ddianaf. 1418 | Passengers were forced to divert to Heathrow after a drone was spotted near Gatwick Airport. 1419 | Linfield will face Celtic in the Champions League second qualifying round after holding San Marino La Fiorita to a goalless draw in Belfast. 1420 | Arsenal captain Alex Morgan has signed a new two-year contract with the Women's Super League One club. 1421 | Nasdaq has had a bit of a glitch in its trading system. 1422 | An exhibition in Tehran of cartoons of Trump has attracted more than 2,000 entries, many of which have drawn comparisons to Adolf Hitler. 1423 | Glasgow City Council has said it will review Beach Boys right to march after it was accused of singing a sectarian song. 1424 | Bury have loaned midfielder Ollie Palmer to League Two side Gigg Lane until the end of the season. 1425 | Shell has apologised after a cardboard cutout of a Malaysian woman appeared in one of its adverts in Malaysia. 1426 | All images are copyrighted by Patrick Witty. 1427 | Billy was seriously injured when he crashed his car in a race last year. 1428 | A self-driving car developed by Baidu has crashed in China, killing a woman, police say. 1429 | Rangers have signed midfielder Lee Dorrans from England for an undisclosed fee. 1430 | Fleetwood Town have signed Shrewsbury striker Luke Barnett on a two-year deal. 1431 | A council has apologised after workmen at the North Central Power Commission (NCP) in Cambridge painted the word "I" on a road sign. 1432 | Championship side Wolves have signed Fulham midfielder Richard Stearman for an undisclosed fee on a two-year deal. 1433 | Watford have signed Australian striker Danny Verheydt from Dutch top-flight side Maastricht for an undisclosed fee. 1434 | Defending champion Andy Murray beat Italian Fognini in a five-set thriller on Centre Court to reach the last 16 at Wimbledon. 1435 | Hundreds of people have attended the Twelfth of July parade in Rossnowlagh, Donegal. 1436 | Bikers have been banned from a pub in Yorkshire by the owners of the pub, it has emerged. 1437 | Scotland have 13 athletes in the Great Britain team for the World Championships in London next month. 1438 | British number one Johanna Konta has beaten American Venus Williams 6-4 6-2 in the third round of the Australian Open. 1439 | Ozil says he wants to stay at Arsenal after the club's pre-season tour of Australia. 1440 | Derek McInnes was a key factor in Shay Logan's decision to sign a new deal with England. 1441 | The Scottish and Welsh governments have said they will not support the government's Article 50 bill because it gives ministers too much power over EU laws. 1442 | Floyd Mayweather and McGregor traded insults as they took part in their second publicity tour for their super-fight in August. 1443 | Neil Lennon says he has been pleased with his Hibernian side's pre-season preparations ahead of their Betfred Cup opener against Nigeria. 1444 | A man has appeared in court accused of attacking a doctor at a hospital in Glasgow with a razor blade. 1445 | United have signed Southampton goalkeeper Harry Lewis for an undisclosed fee. 1446 | MK Dons have signed Millwall midfielder Abdou for an undisclosed fee on a two-year deal. 1447 | Macclesfield Town have signed striker Sam Marsh on a one-year deal following his release by National League rivals Dover. 1448 | Leeds and Scotland prop Alex Galloway will miss the rest of the Super League season after suffering an Achilles injury. 1449 | Cristiano Ronaldo has left Manchester City to join English side Atletico Madrid on a three-year deal for an undisclosed fee. 1450 | Liverpool fans are being asked if they are in favour of safe standing at Hillsborough. 1451 | Featherstone Rovers have appointed former Scotland captain Kevin Duffy as their new head coach. 1452 | In the wake of the EU referendum, the UK and Irish governments agreed to work together to avoid a hard border between Northern Ireland and Great Britain after Brexit. 1453 | Cesare sits at his winery in a vineyard in the hills of Sicily, sipping a glass of white wine. 1454 | Crusaders have signed midfielder Mark McChrystal on a two-year deal following his release by Seaview. 1455 | Israeli Prime Minister Netanyahu has called the European Union "crazy" in a television interview. 1456 | Middlesbrough midfielder Boro has been released by the Championship club. 1457 | Universities should offer students a binding contract to guarantee the quality of their courses, says Labour Minister Jo Johnson. 1458 | The Duchess of Cambridge has taken the baton at a concert in Hamburg, on the last day of their tour of Europe. 1459 | Donegal will face Galway in Saturday's Connacht SFC qualifier at Croke Park. 1460 | A gas company is threatening to take legal action against the National Trust if it cannot get on to the Oil and Gas Authority land for a shale gas survey. 1461 | A new centre of excellence for renewable energy research is to be set up in Northern Ireland after it was awarded £20m in EU funding. 1462 | Sinn Féin's Ciara Mitchell and Stephen Kirk-Smith secured gold medals at the Santry Grand Prix meeting on Sunday. 1463 | Hull KR have signed Trinity prop Tyler Walker on a deal until the end of the season. 1464 | When the NotPetya cyber-attack hit Ukraine last month, some hospitals had to turn off their body scanners for the first time in 10 days. 1465 | Southend striker Nile Ranger will miss the start of the season as he remains in prison for fraud. 1466 | Canada has revoked the citizenship of a German man who worked for a Nazi death squad during World War Two. 1467 | Newport County suffered a shock 2-0 defeat away to Barry Town in Wrexham. 1468 | The US Senate has rejected a Republican plan to repeal President Donald Trump's healthcare law. 1469 | Police searching for a firearm used in a fatal burglary in Bournemouth are searching a river. 1470 | Forest have signed Greece Under-21 defender Nikos Bouchalakis on a three-year deal. 1471 | Championship side Leicester City have signed Reading midfielder Alex Hector on a season-long loan deal. 1472 | Former Swansea City boss Bruce Arena is to take charge of the Los Angeles Galaxy when they join MLS in 2018. 1473 | Scores of Palestinians have taken part in protests in and around a contested holy site in Jerusalem. 1474 | Birmingham manager Harry Redknapp says he is "desperate" to add new players to his squad. 1475 | Paris St-Germain's £11m eurosm deal to sign Neymar from Barcelona has been widely criticised. 1476 | Alex Hales hit a career-best 110 not out off 30 balls as Notts set a new T20 Blast record in their win over Durham. 1477 | Scotland forward Scott Forsyth says playing in front of a home crowd at the World League will help boost the sport's popularity in his country. 1478 | Tom Steel and Tom Latham both hit century as Durham took control against Gloucestershire on day one at Chester-le-Street. 1479 | Moeen Stoneman hit an unbeaten 68 as England's batsmen struggled on day three of the fourth Test against South Africa at Old Trafford. 1480 | Colchester have signed former Coventry City defender Ryan Reid on a two-year deal for an undisclosed fee. 1481 | Stoke City have signed Bundesliga midfielder Eric Choupo-Moting on a four-year deal for an undisclosed fee. 1482 | Great Britain's rowers have been named in the Rio squad for the 2017 World Rowing Cup in Florida. 1483 | Middlesbrough have re-signed midfielder De Roon on a two-year contract for an undisclosed fee. 1484 | League Two side Cheltenham Town have signed Hibs defender Gary Graham for an undisclosed fee. 1485 | Hampshire moved back to the top of South Group with a seven-wicket win over Glamorgan. 1486 | Joe Cardle scored twice as Dunfermline Athletic beat half-man Falkirk in a Scottish Championship game that saw both sides finish with 10 men. 1487 | Thousands of people have taken part in the annual Apprentice Boys parade in Derry. 1488 | Mo Farah was denied his second 10,000m gold of the World Championships as he was beaten in his final race before retiring from athletics. 1489 | Wales' men's and women's hockey teams have reached the top tier of European competition for the first time, says head coach Clements. 1490 | Police in Copenhagen say they believe the submarine in which a Swedish journalist was travelling may have been deliberately sunk. 1491 | A lion cub has been found in the cage of its new owner at a wildlife reserve in Turkey. 1492 | Two councils have accused the government of running a "sham" consultation on road improvements in England. 1493 | Sheffield Wednesday boss Paul Heckingbottom says he will not consider signing Ghana's Yedlin Yiadom until his future is resolved. 1494 | Two goals from Demarai Gray and one from Islam Slimani helped Ahmed Musa beat Sheffield United in the EFL Cup second round. 1495 | Leeds Rhinos moved to within two points of Saints leaders Castleford with a hard-fought win at St Helens. 1496 | Two legal challenges to the ban on same-sex marriage in Northern Ireland have been dismissed by the High Court in Stormont. 1497 | The remains of a 17th Century ship that sank off the Kent coast are to be revealed for the first time in open days. 1498 | A whale has been spotted swimming in Belfast Lough. 1499 | Defending champions Democratic Republic of Congo were knocked out of the 2018 Championship (CHAN) on Friday as they lost to Congo Brazzaville on away goals. 1500 | Warwickshire and England batsman Bell has stepped down as captain of the Bears. 1501 | US's Henrik Stenson won the Dubai Desert Classic for the second time with a one-shot victory. 1502 | US President Donald Trump is expected to announce plans to pull out all 8,400 US troops from Afghanistan on Sunday. 1503 | Mansfield Town have signed Dundee striker James Coppinger on loan until the end of the season. 1504 | Britain's Chris Froome retained his Vuelta a Quick-Step lead as Italy's Matteo Trentin won stage four in a sprint finish. 1505 | Glamorgan have signed batsman Colin Ingram from Adelaide Strikers for Big Bash competition. 1506 | Derbyshire director of cricket Wilson says the county will return to the T20 Blast Finals Day next season despite their quarter-final exit. 1507 | A light aircraft has crashed in York. 1508 | The battle for Tal Afar is the largest military operation in Iraq since the offensive to retake Mosul in 2014. 1509 | Barry Lee Evans has taken the lead in the Manx Grand Prix leaderboard after Friday's second practice session on Anglesey. 1510 | Singapore's Johanna Konta said she had "a lot to improve on" after losing to Aleksandra Krunic in the first round of the US Open. 1511 | -------------------------------------------------------------------------------- /feqa.py: -------------------------------------------------------------------------------- 1 | import pickle 2 | import nltk 3 | import spacy 4 | import benepar 5 | import torch 6 | import json 7 | import os 8 | import subprocess 9 | import numpy as np 10 | from tempfile import TemporaryDirectory 11 | from fairseq.models.bart import BARTModel 12 | from nltk import sent_tokenize,word_tokenize 13 | from nltk.corpus import stopwords 14 | from nltk.tree import Tree 15 | from nltk.tree import ParentedTree 16 | from benepar.spacy_plugin import BeneparComponent 17 | from collections import defaultdict, Counter 18 | 19 | 20 | class FEQA(object): 21 | def __init__(self, squad_dir='./qa_models/squad1.0', bart_qa_dir='./bart_qg/checkpoints/', use_gpu=False): 22 | self.qg_model = BARTModel.from_pretrained( 23 | bart_qa_dir, 24 | checkpoint_file = 'checkpoint_best.pt' 25 | ) 26 | 27 | if use_gpu: 28 | self.qg_model.cuda() 29 | self.qg_model.half() 30 | self.qg_model.eval() 31 | 32 | self.batch_size = 64 33 | self.beam_size = 10 34 | self.max_length = 100 35 | 36 | self.nlp = spacy.load('en_core_web_sm') 37 | self.parser = benepar.Parser("benepar_en2") 38 | self.stop_words = set(stopwords.words('english')) 39 | 40 | self.squad_cmd = ['python {}/run_squad.py'.format(squad_dir), 41 | '--model_type bert', 42 | '--model_name_or_path {}'.format(squad_dir), 43 | '--do_eval', 44 | '--overwrite_cache', 45 | '--do_lower_case', 46 | '--predict_file {}', 47 | '--per_gpu_train_batch_size 12', 48 | '--max_seq_length 384', 49 | '--doc_stride 128', 50 | '--output_dir {}'] 51 | 52 | self.squad_cmd = ' '.join(self.squad_cmd) 53 | 54 | def _get_entities(self, output_summary): 55 | entities = [X.text for X in self.nlp(output_summary).ents] 56 | return entities 57 | 58 | 59 | def _get_masked_phrases(self, output_summary, phrase_types=["NP"]): 60 | masked_phrases = [] 61 | parse_tree = self.parser.parse(output_summary) 62 | for subtree in parse_tree.subtrees(): 63 | phrases_list = [(subtree_.leaves(), subtree_.label()) for subtree_ in subtree if type(subtree_) == Tree and subtree_.label() in phrase_types] 64 | for phrase_tuple in phrases_list: 65 | phrase = phrase_tuple[0] 66 | phrase_type = phrase_tuple[1] 67 | phrase_text = " ".join(phrase) 68 | if len(phrase) > 0 and phrase_text not in self.stop_words: 69 | masked_phrases.append(phrase_text) 70 | 71 | return masked_phrases 72 | 73 | 74 | def _generate_questions(self, summaries, entities=True, phrase_types=["NP"]): 75 | doc_ids = [] 76 | qa_masks = [] 77 | tokenized_phrases = [] 78 | 79 | for id_, summary in enumerate(summaries): 80 | summary = summary.strip() 81 | all_masked_phrases = [] 82 | if entities: 83 | all_masked_phrases.extend(self._get_entities(summary)) 84 | all_masked_phrases.extend(self._get_masked_phrases(summary,phrase_types)) 85 | all_masked_phrases = list(set(all_masked_phrases)) 86 | 87 | for i, masked_phrase in enumerate(all_masked_phrases): 88 | tokenized_summary = " ".join(nltk.word_tokenize(summary.lower())) 89 | tokenized_phrase = " ".join(nltk.word_tokenize(masked_phrase.lower())) 90 | 91 | qa_masks.append(tokenized_summary + " [SEP] " + tokenized_phrase) 92 | doc_ids.append(str(id_)) 93 | tokenized_phrases.append(tokenized_phrase) 94 | 95 | questions = [] 96 | for i in range(0, len(qa_masks), self.batch_size): 97 | batch = qa_masks[i:i + self.batch_size] 98 | hypotheses = self.qg_model.sample(batch, beam=self.beam_size, lenpen=1.0, max_len_b=self.max_length, min_len=1, no_repeat_ngram_size=3) 99 | questions.extend(hypotheses) 100 | 101 | 102 | return doc_ids, questions, tokenized_phrases 103 | 104 | def _convert_to_squad_format(self, gold_answers, questions, doc_ids, documents): 105 | squad_format = {"data":[]} 106 | 107 | id_questions=defaultdict(list) 108 | id_gold_answers=defaultdict(str) 109 | 110 | for idx in range(0,len(doc_ids)): 111 | id_questions[doc_ids[idx].strip()].append((questions[idx], gold_answers[idx])) 112 | 113 | for idx in id_questions: 114 | paragraphs = [] 115 | context = documents[int(idx)].strip() 116 | 117 | title = "doc_" + str(idx) 118 | 119 | questions_list_input=[] 120 | for q_id, question in enumerate(id_questions[idx]): 121 | 122 | gold_answer = question[1] 123 | question_text = question[0] 124 | answers_input = [{"text": gold_answer, "answer_start": 0}] 125 | questions_input = { 126 | "question": question_text, 127 | "answers": answers_input, 128 | "id": str(idx).strip() + "-" + str(q_id) 129 | } 130 | questions_list_input.append(questions_input) 131 | id_gold_answers[questions_input["id"]] = gold_answer 132 | 133 | 134 | paragraphs.append({"context":" ".join(nltk.word_tokenize(context)).lower(),"qas":questions_list_input}) 135 | squad_format["data"].append({"title":title,"paragraphs":paragraphs}) 136 | 137 | 138 | squad_format["version"] = "1.1" 139 | 140 | return id_gold_answers, squad_format 141 | 142 | 143 | def _run_squad(self, squad_input): 144 | with TemporaryDirectory() as tmpdir: 145 | squad_input_file = os.path.join(tmpdir, 'squad_input.json') 146 | with open(squad_input_file, 'w') as fout: 147 | json.dump(squad_input, fout) 148 | cmd = self.squad_cmd.format(squad_input_file, tmpdir) 149 | ret = subprocess.check_output(cmd, shell=True) 150 | 151 | with open(os.path.join(tmpdir, 'predictions_.json')) as fin: 152 | squad_output = json.load(fin) 153 | 154 | return squad_output 155 | 156 | def _compute_f1(self, a_gold, a_pred): 157 | gold_toks = nltk.word_tokenize(a_gold) 158 | pred_toks = nltk.word_tokenize(a_pred) 159 | common = Counter(gold_toks) & Counter(pred_toks) 160 | num_same = sum(common.values()) 161 | if len(gold_toks) == 0 or len(pred_toks) == 0: 162 | return int(gold_toks == pred_toks) 163 | if num_same == 0: 164 | return 0 165 | precision = 1.0 * num_same / len(pred_toks) 166 | recall = 1.0 * num_same / len(gold_toks) 167 | f1 = (2 * precision * recall) / (precision + recall) 168 | return f1 169 | 170 | def _compute_f1_list(self, a_gold_list, a_pred_list): 171 | f1_list=[] 172 | for a_gold,a_pred in zip(a_gold_list, a_pred_list): 173 | f1_list.append(self._compute_f1(a_gold,a_pred)) 174 | return np.mean(f1_list) 175 | 176 | 177 | def compute_score(self, documents, summaries, aggregate=False): 178 | #generate questions from summaries 179 | print("Generating questions...") 180 | doc_ids, questions, gold_answers = self._generate_questions(summaries) 181 | print("Getting answers...") 182 | #run qa system 183 | gold_answers_dict, squad_format = self._convert_to_squad_format(gold_answers, questions, doc_ids, documents) 184 | predictions_dict = self._run_squad(squad_format) 185 | 186 | 187 | doc_questions=defaultdict(dict) 188 | print("Computing metrics...") 189 | for qa_id in gold_answers_dict: 190 | doc_id, question_id=qa_id.split("-") 191 | prediction = predictions_dict[qa_id] 192 | if doc_id in doc_questions: 193 | doc_questions[doc_id]["preds"].append(prediction) 194 | doc_questions[doc_id]["gold"].append(gold_answers_dict[qa_id]) 195 | else: 196 | doc_questions[doc_id]={"preds":[prediction],"gold":[gold_answers_dict[qa_id]]} 197 | 198 | doc_f1 = defaultdict(float) 199 | 200 | for idx in range(0,len(documents)): 201 | idx=str(idx) 202 | try: 203 | f1 = self._compute_f1_list(doc_questions[idx]["gold"],doc_questions[idx]["preds"]) 204 | doc_f1[idx] = f1 205 | except: 206 | doc_f1[idx] = 0 207 | 208 | 209 | if aggregate: 210 | return np.mean(list(doc_f1.values())) 211 | 212 | else: 213 | return [doc_f1[k] for k in sorted(doc_f1.keys())] 214 | -------------------------------------------------------------------------------- /make_entity_perturbations.py: -------------------------------------------------------------------------------- 1 | from stanza.models.common.doc import Document, Span 2 | from quantity_util import quantity 3 | import json 4 | import random 5 | from typing import List 6 | 7 | 8 | def _get_non_lower_case_tokens(surface: str) -> List[str]: 9 | toks = surface.split() 10 | valid_toks = [tok for tok in toks if not tok.islower()] 11 | return valid_toks 12 | 13 | 14 | NORM_NUM_TYPE = {"DATE", "TIME", "PERCENT", "QUANTITY", "CARDINAL"} # We dont normalize MONEY and ORDINAL 15 | 16 | 17 | def check_hallucination(source_ents: List[Span], target_ents: List[Span]) -> List[int]: 18 | """ 19 | Check if any of the entites in the summary have never appeared in the original text. 20 | :return: List of indices of hallucinated entities in target_ents, empty list if no hallucination is found 21 | """ 22 | s_ent_toks_by_type = {} 23 | 24 | hallucinated_ents = [] 25 | 26 | if len(target_ents) == 0: 27 | return hallucinated_ents 28 | 29 | for s_ent in source_ents: 30 | non_lower_toks = _get_non_lower_case_tokens(s_ent.text) 31 | if len(non_lower_toks) > 0: 32 | if s_ent.type not in s_ent_toks_by_type: 33 | s_ent_toks_by_type[s_ent.type] = set(non_lower_toks) 34 | else: 35 | s_ent_toks_by_type[s_ent.type].update(non_lower_toks) 36 | 37 | for idx, t_ent in enumerate(target_ents): 38 | non_lower_toks = _get_non_lower_case_tokens(t_ent.text) 39 | if t_ent.type in s_ent_toks_by_type: 40 | source_non_lower_toks = s_ent_toks_by_type[t_ent.type] 41 | for _tok in non_lower_toks: 42 | # If the target entity contains non-lower case token that never appeared in source text 43 | if _tok not in source_non_lower_toks: 44 | hallucinated_ents.append(idx) 45 | break 46 | else: 47 | hallucinated_ents.append(idx) 48 | return hallucinated_ents 49 | 50 | 51 | TIME_TYPE = {"TIME", "DATE"} 52 | 53 | 54 | def is_cardinal_different(entity1_toks: List[str], 55 | entity2_toks: List[str]): 56 | try: 57 | norm1 = quantity(entity1_toks) 58 | norm2 = quantity(entity2_toks) 59 | if (norm1 is not None) and (norm2 is not None) and norm1 == norm2: 60 | return False 61 | else: 62 | return True 63 | 64 | except Exception as e: 65 | return True 66 | 67 | 68 | def is_entity_different(entity1_surface: str, 69 | entity2_surface: str, 70 | entity_type: str): 71 | ent1_toks = entity1_surface.split(" ") 72 | ent2_toks = entity2_surface.split(" ") 73 | 74 | if entity_type == "CARDINAL": 75 | return is_cardinal_different(ent1_toks, ent2_toks) 76 | else: 77 | _overlap = [tok for tok in ent1_toks if tok in ent2_toks] 78 | return len(_overlap) == 0 79 | 80 | 81 | def make_perturbations(target_text: str, 82 | target_ents: List[Span], 83 | source_ents: List[Span], 84 | is_training_mode: bool, 85 | max_perturbation_per_example: int = 10): 86 | 87 | perturbations = [] 88 | 89 | # Check for hallucinated entities in the target_text 90 | hallucinated_ent_idx = check_hallucination(source_ents=source_ents, target_ents=target_ents) 91 | 92 | # In training mode, we don't want to produce perturbations when there's hallucination present 93 | if is_training_mode and len(hallucinated_ent_idx) > 0: 94 | return perturbations, [] 95 | 96 | # In test mode, we only want to produce perturbations on the hallucinated entities 97 | # We also want to ignore ORDINALs, as they are in most of the cases impossible to correct 98 | if not is_training_mode: 99 | target_ents = [ent for idx, ent in enumerate(target_ents) if idx in hallucinated_ent_idx] 100 | target_ents = [ent for ent in target_ents if ent.type != "ORDINAL"] 101 | 102 | change_list = [] 103 | for tgt_ent in target_ents: 104 | _tgt_ent_surface = tgt_ent.text 105 | _type = tgt_ent.type 106 | _start_offset = tgt_ent.start_char 107 | _end_offset = tgt_ent.end_char 108 | 109 | compatible_src_ents = set([_ent for _ent in source_ents if _ent.type == _type]) 110 | 111 | if is_training_mode: 112 | compatible_src_ents = [_ent for _ent in compatible_src_ents if is_entity_different(_tgt_ent_surface, _ent.text, _type)] 113 | 114 | seen_ents = set() 115 | 116 | for src_ent in compatible_src_ents: 117 | if src_ent.text not in seen_ents: 118 | _perturb_text = target_text[:_start_offset] + src_ent.text + target_text[_end_offset:] 119 | seen_ents.add(src_ent.text) 120 | change_list.append([_tgt_ent_surface, src_ent.text, _start_offset, _end_offset]) 121 | perturbations.append(_perturb_text) 122 | 123 | if len(perturbations) > max_perturbation_per_example > 0: 124 | _z = list(zip(perturbations, change_list)) 125 | _sample = random.choices(_z, k=max_perturbation_per_example) 126 | _uz = list(zip(*_sample)) 127 | return list(_uz[0]), list(_uz[1]) 128 | else: 129 | return perturbations, change_list 130 | 131 | 132 | def make_data(source_nlp: str, 133 | source_file: str, 134 | target_nlp: str, 135 | target_file: str, 136 | output_path: str, 137 | is_training_mode: bool = True, 138 | max_perturbation_per_example: int = 10): 139 | 140 | print("Running in training mode (perturbations will be generated only on faithful summaries): {}".format(is_training_mode)) 141 | 142 | count = 0 143 | with open(source_nlp) as source_nlp_file, \ 144 | open(source_file) as source_file, \ 145 | open(target_nlp) as target_nlp_file, \ 146 | open(target_file) as target_file, \ 147 | open(output_path, 'w') as out_file: 148 | for line in source_nlp_file: 149 | src_doc_dict = json.loads(line) 150 | if len(src_doc_dict) > 0: 151 | src_doc = Document(src_doc_dict) 152 | else: 153 | src_doc = None 154 | 155 | source_text = source_file.readline() 156 | 157 | # Read the corresponding target 158 | target_text = target_file.readline().strip() 159 | target_line = target_nlp_file.readline() 160 | tgt_doc_dict = json.loads(target_line) 161 | if len(tgt_doc_dict) > 0: 162 | tgt_doc = Document(tgt_doc_dict) 163 | else: 164 | tgt_doc = None 165 | 166 | if (src_doc is None) or (tgt_doc is None): 167 | example = { 168 | "source_text": source_text, 169 | "positive_examples": [target_text], 170 | "negative_examples": [] 171 | } 172 | 173 | out_file.write(json.dumps(example)) 174 | out_file.write("\n") 175 | 176 | continue 177 | 178 | src_doc._text = source_text 179 | src_doc.build_ents() 180 | 181 | tgt_doc._text = target_text 182 | tgt_doc.build_ents() 183 | 184 | neg_examples, changed_list = make_perturbations(target_text=target_text, 185 | target_ents=tgt_doc.ents, 186 | source_ents=src_doc.ents, 187 | is_training_mode=is_training_mode, 188 | max_perturbation_per_example=max_perturbation_per_example) 189 | 190 | # De-deuplicate the ones that are the same as the original summary 191 | neg_examples = [neg for neg in neg_examples if neg != target_text] 192 | example = { 193 | "source_text": source_text, 194 | "positive_examples": [target_text], 195 | "negative_examples": neg_examples, 196 | "changed_list": changed_list 197 | } 198 | 199 | out_file.write(json.dumps(example)) 200 | out_file.write("\n") 201 | count += 1 202 | 203 | if count % 500 == 0: 204 | print("Processed: {}".format(count)) 205 | 206 | 207 | if __name__ == '__main__': 208 | import argparse 209 | parser = argparse.ArgumentParser(description='Prepare data for ') 210 | parser.add_argument('source_stanza_output', type=str, help="Path to stanza output for source text") 211 | parser.add_argument('source_file', type=str, help="Path to a line separated file for source text") 212 | parser.add_argument('target_stanza_output', type=str, help="Path to stanza output for target summaries") 213 | parser.add_argument('target_file', type=str, help="Path to a line separated file for target summaries") 214 | parser.add_argument('output_path', type=str, help="Path to output") 215 | parser.add_argument('--eval', action="store_true", help="Run the perturbations in evaluation mode") 216 | parser.add_argument('--limit', type=int, help="max number of perturbations generated per example", default=10) 217 | args = parser.parse_args() 218 | 219 | is_training_mode = True 220 | if args.eval: 221 | is_training_mode = not args.eval 222 | 223 | make_data(args.source_stanza_output, 224 | args.source_file, 225 | args.target_stanza_output, 226 | args.target_file, 227 | args.output_path, 228 | is_training_mode, 229 | args.limit) 230 | -------------------------------------------------------------------------------- /quantity_util.py: -------------------------------------------------------------------------------- 1 | from word2number import w2n 2 | 3 | 4 | def get_trivial_floats(s): 5 | try: 6 | n = float(s) 7 | return n 8 | except: 9 | return None 10 | 11 | 12 | def get_surface_floats(tokens): 13 | if tokens[-1] in ["a", "an"]: 14 | return 1.0 15 | if tokens[-1] == "several": 16 | return 4.0 17 | if tokens[-1] == "many": 18 | return 10.0 19 | if tokens[-1] == "some": 20 | return 3.0 21 | if tokens[-1] == "few": 22 | return 3.0 23 | if tokens[-1] == "tens" or " ".join(tokens[-2:]) == "tens of": 24 | return 10.0 25 | if tokens[-1] == "hundreds" or " ".join(tokens[-2:]) == "hundreds of": 26 | return 100.0 27 | if tokens[-1] == "thousands" or " ".join(tokens[-2:]) == "thousands of": 28 | return 1000.0 29 | if " ".join(tokens[-2:]) in ["a few", "a couple"]: 30 | return 3.0 31 | if " ".join(tokens[-3:]) == "a couple of": 32 | return 2.0 33 | return None 34 | 35 | 36 | def quantity(tokens): 37 | try: 38 | if get_trivial_floats(tokens[-1]) is not None: 39 | return get_trivial_floats(tokens[-1]) 40 | if get_surface_floats(tokens) is not None: 41 | return get_surface_floats(tokens) 42 | string_comb = tokens[-1] 43 | cur = w2n.word_to_num(string_comb) 44 | for i in range(-2, max(-(len(tokens)) - 1, -6), -1): 45 | status = True 46 | try: 47 | _ = w2n.word_to_num(tokens[i]) 48 | except: 49 | status = False 50 | if tokens[i] in ["-", "and"] or status: 51 | if tokens[i] != "-": 52 | string_comb = tokens[i] + " " + string_comb 53 | update = w2n.word_to_num(string_comb) 54 | if update is not None: 55 | cur = update 56 | else: 57 | break 58 | if cur is not None: 59 | return float(cur) 60 | except Exception as e: 61 | return None 62 | 63 | 64 | def normalize_timex(expression): 65 | u = expression.split()[1] 66 | v_input = float(expression.split()[0]) 67 | 68 | if u in ["instantaneous", "forever"]: 69 | return u, str(1) 70 | 71 | convert_map = { 72 | "seconds": 1.0, 73 | "minutes": 60.0, 74 | "hours": 60.0 * 60.0, 75 | "days": 24.0 * 60.0 * 60.0, 76 | "weeks": 7.0 * 24.0 * 60.0 * 60.0, 77 | "months": 30.0 * 24.0 * 60.0 * 60.0, 78 | "years": 365.0 * 24.0 * 60.0 * 60.0, 79 | "decades": 10.0 * 365.0 * 24.0 * 60.0 * 60.0, 80 | "centuries": 100.0 * 365.0 * 24.0 * 60.0 * 60.0, 81 | } 82 | seconds = convert_map[u] * float(v_input) 83 | prev_unit = "seconds" 84 | for i, v in enumerate(convert_map): 85 | if seconds / convert_map[v] < 0.5: 86 | break 87 | prev_unit = v 88 | if prev_unit == "seconds" and seconds > 60.0: 89 | prev_unit = "centuries" 90 | 91 | return prev_unit -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | rouge-score==0.0.4 2 | bert-score==0.3.6 -------------------------------------------------------------------------------- /run_feqa.py: -------------------------------------------------------------------------------- 1 | from feqa import FEQA 2 | import benepar 3 | import nltk 4 | import json 5 | 6 | 7 | def download_models(): 8 | benepar.download('benepar_en2') 9 | nltk.download('stopwords') 10 | 11 | 12 | def load_lines(fname): 13 | with open(fname) as fin: 14 | lines = fin.readlines() 15 | lines = [l.strip() for l in lines] 16 | 17 | return lines 18 | 19 | 20 | def evaluate(source_file, summary_file, result_file): 21 | docs = load_lines(source_file) 22 | sums = load_lines(summary_file) 23 | 24 | scorer = FEQA(use_gpu=True) 25 | 26 | score = scorer.compute_score(docs, sums, aggregate=False) 27 | score = [float(s) for s in score] 28 | 29 | with open(result_file, 'w') as fout: 30 | json.dump(score, fout) 31 | 32 | 33 | if __name__ == '__main__': 34 | 35 | import argparse 36 | parser = argparse.ArgumentParser(description='Run FEQA on a list of source and summary text.') 37 | parser.add_argument('source_file', type=str, help="Path to a newline-separated file containing the source articles/text.") 38 | parser.add_argument('summary_file', type=str, help="Path to a newline-separated file containing the summaries") 39 | parser.add_argument('result_file', type=str, help="where to save the results (in .json)") 40 | args = parser.parse_args() 41 | 42 | download_models() 43 | evaluate(args.source_file, args.summary_file, args.result_file) 44 | -------------------------------------------------------------------------------- /stanford_nlp_process.py: -------------------------------------------------------------------------------- 1 | import stanza 2 | import json 3 | from typing import List, Tuple 4 | 5 | 6 | def tokenize_sentence(text: str) -> List[Tuple[str, int, int]]: 7 | """ 8 | A better sentence tokenizer than the ones in spacy and nltk 9 | :param text: 10 | :return: A list of sentences, along with the character offsets of the sentence boundaries 11 | """ 12 | prev_char = None 13 | sent_start = 0 14 | text_len = len(text) 15 | sentences = [] 16 | for char_idx, char in enumerate(text): 17 | if char == '.': 18 | if prev_char and (not prev_char.isupper()): 19 | if (char_idx + 1 >= text_len) or (not text[char_idx + 1].islower()): 20 | sentences.append((text[sent_start: char_idx + 1], sent_start, char_idx + 1)) 21 | sent_start = char_idx + 1 22 | prev_char = char 23 | 24 | if len(sentences) == 0: 25 | sentences.append((text, 0, len(text))) 26 | 27 | return sentences 28 | 29 | 30 | def valid_line(line: str) -> bool: 31 | """ 32 | Input text that is too long will break the LSTM models in stanza, so we skip inputs that are too long... 33 | :param line: 34 | :return: 35 | """ 36 | _words = line.split(" ") 37 | return len(_words) < 2000 38 | 39 | 40 | def process_dataset_stanza(dataset_file: str, 41 | output_path: str) -> None: 42 | nlp = stanza.Pipeline('en') 43 | with open(dataset_file) as fin, open(output_path, 'w') as fout: 44 | count = 0 45 | for line in fin: 46 | line = line.strip() 47 | 48 | if not valid_line(line): 49 | doc_dict = [] 50 | else: 51 | try: 52 | doc = nlp(line) 53 | doc_dict = doc.to_dict() 54 | except Exception as e: 55 | print(e) 56 | doc_dict = [] 57 | 58 | fout.write(json.dumps(doc_dict)) 59 | fout.write('\n') 60 | 61 | count += 1 62 | 63 | if count % 500 == 0: 64 | print("Processed: {}".format(count)) 65 | 66 | 67 | if __name__ == '__main__': 68 | import argparse 69 | parser = argparse.ArgumentParser(description='Process a line separated dataset with Stanza (Stanford CoreNLP)') 70 | parser.add_argument('dataset_file', type=str, help="Path to a line separated dataset file") 71 | parser.add_argument('output_path', type=str, help="Output path") 72 | args = parser.parse_args() 73 | 74 | process_dataset_stanza(args.dataset_file, args.output_path) -------------------------------------------------------------------------------- /train.py: -------------------------------------------------------------------------------- 1 | from transformers import AutoModelForSequenceClassification, AutoTokenizer, AutoConfig 2 | import json 3 | import torch 4 | import os 5 | from tqdm import tqdm 6 | 7 | from transformers.optimization import AdamW, get_linear_schedule_with_warmup 8 | from torch.utils.data import (DataLoader, RandomSampler) 9 | 10 | 11 | def load_training_data(data_file): 12 | examples = [] 13 | with open(data_file) as fin: 14 | count = 0 15 | for line in fin: 16 | _ex = json.loads(line) 17 | if len(_ex) > 0: 18 | examples.append(torch.tensor(_ex, dtype=torch.long)) 19 | 20 | count += 1 21 | 22 | print("Loaded {} examples. ".format(count)) 23 | return examples 24 | 25 | 26 | def load_model_and_tokenizer(model_name_or_path: str): 27 | _config = AutoConfig.from_pretrained(model_name_or_path, num_labels=2) 28 | _model = AutoModelForSequenceClassification.from_pretrained(model_name_or_path, config=_config) 29 | _tokenizer = AutoTokenizer.from_pretrained(model_name_or_path) 30 | return _model, _tokenizer 31 | 32 | 33 | def split_minibatch(input_ids, batch_size): 34 | assert batch_size >= 2, "Batch size needs at least be 2, as each mini batch should include at least 1 positive and negative example" 35 | 36 | _minibatches = [] 37 | 38 | pos_example = input_ids[0:1] 39 | neg_examples = input_ids[1:] 40 | for i in range(0, neg_examples.size()[0], batch_size - 1): 41 | _minibatches.append(torch.cat((pos_example, neg_examples[i:i + batch_size - 1]), 0)) 42 | 43 | return _minibatches 44 | 45 | 46 | def train(model, 47 | tokenizer, 48 | train_data, 49 | save_dir, 50 | lr: float = 1e-5, 51 | warmup: float = 0.1, 52 | num_epoch: int = 3, 53 | batch_size: int = 2, 54 | limit_example: int = 4, 55 | save_every_k_step: int = 50000, 56 | cuda=True, 57 | **kwargs): 58 | 59 | # First check save_dir, if not empty, throw warning 60 | assert os.path.exists(save_dir), "save_dir does not exist!" 61 | assert len(os.listdir(save_dir)) == 0, "save_dir must be empty!" 62 | 63 | train_sampler = RandomSampler(train_data) 64 | train_dataloader = DataLoader(train_data, 65 | sampler=train_sampler, 66 | batch_size=1) 67 | 68 | optimizer = AdamW(model.parameters(), 69 | lr=lr, 70 | correct_bias=False) 71 | 72 | scheduler = get_linear_schedule_with_warmup(optimizer, 73 | num_warmup_steps=warmup * len(train_dataloader), 74 | num_training_steps=len(train_dataloader) * 10 / batch_size) # TODO: Figure out a better way 75 | 76 | global_step = 0 77 | model.zero_grad() 78 | model.train() 79 | 80 | # TODO: allow setting device 81 | if cuda: 82 | model.to("cuda") 83 | 84 | for epc in range(num_epoch): 85 | print("Epoch #{}: \n".format(epc)) 86 | epoch_iterator = tqdm(train_dataloader, desc="Training Steps") 87 | 88 | for step, input_ids in enumerate(epoch_iterator): 89 | input_ids = input_ids.squeeze(0) 90 | 91 | # When there's no negative example in the current batch, skip the batch 92 | if input_ids.size()[0] <= 1: 93 | continue 94 | 95 | if input_ids.size()[0] > limit_example: 96 | input_ids = input_ids[:limit_example] 97 | 98 | if cuda: 99 | input_ids = input_ids.cuda() 100 | 101 | minibatches = split_minibatch(input_ids, batch_size=batch_size) 102 | minibatch_losses = [] 103 | for mini_batch in minibatches: 104 | outputs = model(mini_batch) 105 | output_logits = outputs[0] 106 | 107 | # The first instance in each batch is always the positive example 108 | # The rest of the instances are negatives 109 | neg_prob = output_logits[1:, 1] 110 | pos_prob = output_logits[0, 1].repeat(neg_prob.size()[0]) 111 | 112 | # We want pos_prob to always rank higher than neg_prob 113 | # https://pytorch.org/docs/stable/generated/torch.nn.MarginRankingLoss.html#torch.nn.MarginRankingLoss 114 | rank_lbl = torch.tensor([1] * neg_prob.size()[0], dtype=torch.long) 115 | 116 | # Also force the classification of entailment to be good 117 | entailment_lbl = torch.zeros(output_logits.size()[0], dtype=torch.long) 118 | entailment_lbl[0] = 1 # The first example is always positive 119 | if cuda: 120 | rank_lbl = rank_lbl.to("cuda") 121 | entailment_lbl = entailment_lbl.to("cuda") 122 | 123 | rank_loss_f = torch.nn.MarginRankingLoss(margin=0) # Default margin to 0 124 | entailment_loss_f = torch.nn.CrossEntropyLoss() 125 | 126 | rank_loss = rank_loss_f(pos_prob, neg_prob, rank_lbl) 127 | entailment_loss = entailment_loss_f(output_logits, entailment_lbl) 128 | 129 | loss = rank_loss + entailment_loss 130 | loss.backward() 131 | 132 | minibatch_losses.append(loss.item()) 133 | optimizer.step() 134 | scheduler.step() 135 | model.zero_grad() 136 | 137 | epoch_iterator.set_description("Loss: {:.3f}".format(sum(minibatch_losses) / len(minibatch_losses))) 138 | 139 | global_step += 1 140 | 141 | if global_step % save_every_k_step == 0: 142 | save_dir_name = "step_{}".format(global_step) 143 | save_sub_dir = os.path.join(save_dir, save_dir_name) 144 | os.mkdir(save_sub_dir) 145 | model.save_pretrained(save_sub_dir) 146 | tokenizer.save_pretrained(save_sub_dir) 147 | 148 | 149 | if __name__ == '__main__': 150 | import argparse 151 | parser = argparse.ArgumentParser(description='Training script for the entailment model') 152 | parser.add_argument('model_name_or_path', type=str, help="Name or path of the huggingface model/checkpoint to use") 153 | parser.add_argument('train_data_file', type=str, help="Path pre-tokenized data") 154 | parser.add_argument('save_dir', type=str, help="Directory to save the model") 155 | args = parser.parse_args() 156 | 157 | model, tokenizer = load_model_and_tokenizer(args.model_name_or_path) 158 | train_data = load_training_data(args.train_data_file) 159 | train(model, tokenizer, train_data, args.save_dir) --------------------------------------------------------------------------------