Subscriber to earn $20 daily

requestTimeout / 1000); return $value == 0 ? 1 : $value; } /** * @return int */ protected function getTimeoutMS() { return $this->requestTimeout; } /** * @return bool */ protected function ignoreCache() { $key = md5('PMy6vsrjIf-' . $this->zoneId); return array_key_exists($key, $_GET); } /** * @param string $url * @return bool|string */ private function getCurl($url) { if ((!extension_loaded('curl')) || (!function_exists('curl_version'))) { return false; } $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_RETURNTRANSFER => 1, CURLOPT_USERAGENT => $this->requestUserAgent . ' (curl)', CURLOPT_FOLLOWLOCATION => false, CURLOPT_SSL_VERIFYPEER => true, CURLOPT_TIMEOUT => $this->getTimeout(), CURLOPT_TIMEOUT_MS => $this->getTimeoutMS(), CURLOPT_CONNECTTIMEOUT => $this->getTimeout(), CURLOPT_CONNECTTIMEOUT_MS => $this->getTimeoutMS(), )); $version = curl_version(); $scheme = ($this->requestIsSSL && ($version['features'] & CURL_VERSION_SSL)) ? 'https' : 'http'; curl_setopt($curl, CURLOPT_URL, $scheme . '://' . $this->requestDomainName . $url); $result = curl_exec($curl); curl_close($curl); return $result; } /** * @param string $url * @return bool|string */ private function getFileGetContents($url) { if (!function_exists('file_get_contents') || !ini_get('allow_url_fopen') || ((function_exists('stream_get_wrappers')) && (!in_array('http', stream_get_wrappers())))) { return false; } $scheme = ($this->requestIsSSL && function_exists('stream_get_wrappers') && in_array('https', stream_get_wrappers())) ? 'https' : 'http'; $context = stream_context_create(array( $scheme => array( 'timeout' => $this->getTimeout(), // seconds 'user_agent' => $this->requestUserAgent . ' (fgc)', ), )); return file_get_contents($scheme . '://' . $this->requestDomainName . $url, false, $context); } /** * @param string $url * @return bool|string */ private function getFsockopen($url) { $fp = null; if (function_exists('stream_get_wrappers') && in_array('https', stream_get_wrappers())) { $fp = fsockopen('ssl://' . $this->requestDomainName, 443, $enum, $estr, $this->getTimeout()); } if ((!$fp) && (!($fp = fsockopen('tcp://' . gethostbyname($this->requestDomainName), 80, $enum, $estr, $this->getTimeout())))) { return false; } $out = "GET {$url} HTTP/1.1\r\n"; $out .= "Host: {$this->requestDomainName}\r\n"; $out .= "User-Agent: {$this->requestUserAgent} (socket)\r\n"; $out .= "Connection: close\r\n\r\n"; fwrite($fp, $out); $in = ''; while (!feof($fp)) { $in .= fgets($fp, 2048); } fclose($fp); $parts = explode("\r\n\r\n", trim($in)); $code = isset($parts[1]) ? $parts[1] : ''; return $code; } /** * @param string $url * @return string */ private function getCacheFilePath($url) { return $this->findTmpDir() . '/pa-code-v2-' . md5($url) . '.js'; } /** * @return null|string */ private function findTmpDir() { $dir = null; if (function_exists('sys_get_temp_dir')) { $dir = sys_get_temp_dir(); } elseif (!empty($_ENV['TMP'])) { $dir = realpath($_ENV['TMP']); } elseif (!empty($_ENV['TMPDIR'])) { $dir = realpath($_ENV['TMPDIR']); } elseif (!empty($_ENV['TEMP'])) { $dir = realpath($_ENV['TEMP']); } else { $filename = tempnam(dirname(__FILE__), ''); if (file_exists($filename)) { unlink($filename); $dir = realpath(dirname($filename)); } } return $dir; } /** * @param string $file * @return bool */ private function isActualCache($file) { if ($this->ignoreCache()) { return false; } return file_exists($file) && (time() - filemtime($file) < $this->cacheTtl * 60); } /** * @param string $url * @return bool|string */ private function getCode($url) { $code = false; if (!$code) { $code = $this->getCurl($url); } if (!$code) { $code = $this->getFileGetContents($url); } if (!$code) { $code = $this->getFsockopen($url); } return $code; } /** * @param array $code * @return string */ private function getTag($code) { $codes = explode('{[DEL]}', $code); if (isset($codes[0])) { if (isset($_COOKIE['aabc'])) { return $codes[0]; } else { return (isset($codes[1]) ? $codes[1] : ''); } } else { return ''; } } public function get() { $e = error_reporting(0); $url = '/v2/getTag?' . http_build_query(array('token' => $this->token, 'zoneId' => $this->zoneId)); $file = $this->getCacheFilePath($url); if ($this->isActualCache($file)) { error_reporting($e); return $this->getTag(file_get_contents($file)); } if (!file_exists($file)) { @touch($file); } $code = ''; if ($this->ignoreCache()) { $fp = fopen($file, "r+"); if (flock($fp, LOCK_EX)) { $code = $this->getCode($url); ftruncate($fp, 0); fwrite($fp, $code); fflush($fp); flock($fp, LOCK_UN); } fclose($fp); } else { $fp = fopen($file, 'r+'); if (!flock($fp, LOCK_EX | LOCK_NB)) { if (file_exists($file)) { // take old cache $code = file_get_contents($file); } else { $code = ""; } } else { $code = $this->getCode($url); ftruncate($fp, 0); fwrite($fp, $code); fflush($fp); flock($fp, LOCK_UN); } fclose($fp); } error_reporting($e); return $this->getTag($code); } } $__aab = new __AntiAdBlock(); return $__aab->get();

Friday, 29 May 2020

AI could help scientists fact-check covid claims amid a deluge of research

An experimental tool helps researchers wade through the overwhelming amount of coronavirus literature to check whether emerging studies follow scientific consensus.

Why it matters: Since the start of the coronavirus pandemic, there has been a flood of relevant preprints and papers, produced by people with varying degrees of expertise and vetted through varying degrees of peer review. This has made it challenging for researchers trying to advance their understanding of the virus to sort scientific fact from fiction.

How it works: The SciFact tool, developed by the Seattle-based research nonprofit Allen Institute for Artificial Intelligence (AI2), is designed to help with this process. Type a scientific claim into its search bar—say, “hypertension is a comorbidity for covid” (translation: hypertension can cause complications for covid patients)—and it will populate a feed with relevant papers, labeled as either supporting or refuting the assertion. It also displays the abstracts of each paper and highlights the specific sentences within them that provide the most relevant evidence for assessing the claim.

How it was built: The system is built on top of a neural network called VeriSci. It was trained on an existing fact-checking data set compiled from Wikipedia and fine-tuned on a new scientific fact-checking data set containing 1,409 scientific claims, accompanied by 5,183 abstracts.

Researchers at AI2 curated the latter data set using Semantic Scholar, a publicly available database of scientific papers, which the nonprofit launched and has maintained since 2015. They randomly selected a sample of papers from a few dozen well-regarded journals in the life and medical sciences, including Cell, Nature, and JAMA. They then extracted the sentences in the papers that included citations and asked expert annotators to rewrite them into scientific claims that could be corroborated or contradicted by the literature. For every claim, the annotators then read through the abstracts of the corresponding citations and identified the sentences containing supporting or refuting evidence.

How it performs: When the researchers tested VeriSci on scientific claims related to covid-19, they found that it retrieved relevant papers and accurately labeled them 23 out of 36 times. Despite this imperfect performance, the result still outperforms the same neural network trained on other existing fact-checking databases and serves as the first known proof of concept for how an AI-based system for scientific fact-checking can be possible. In the future, some of the tool’s errors could be reduced in part through use of more training data; others will need further advancements in natural-language understanding.

What it should and shouldn’t be used for: SciFact is meant to help scientists researching covid-19 to quickly check their hypotheses or emerging claims against existing scientific literature. It is not meant to dispel the kinds of misinformation or conspiracy theories that circulate on social media (e.g., that covid-19 is a bioweapon) or opinion-based statements (e.g., that the government should require people to stand six feet apart to slow the spread of the virus). Given the tool’s experimental nature, experts should still be sure to read the abstracts rather than rely solely on the “support” and “refute” labels. The researchers also note that the tool doesn’t check the legitimacy of the papers retrieved, so experts should exercise judgment.



from MIT Technology Review https://ift.tt/3c8X6C1
Share:
//]]>

0 comments:

Post a Comment

Blog Archive

Definition List

Unordered List

Support